ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SystemUI状态栏形式及流程

2021-12-02 14:59:58  阅读:406  来源: 互联网

标签:status xml 显示 bar 状态栏 流程 布局 SystemUI


一.状态栏形式

1.1锁屏状态栏

锁屏状态栏是只有用户设置了锁屏方式为滑动或其他安全锁时才会显示,锁屏方式设置为“无”时不会显示,其显示是伴随着锁屏界面的,也就是只有按下power键或者自动息屏后才会显示。其显示逻辑是在NotificationPanelView来控制的

案例一:

区域1为keyguard_carrier_text

区域2为cutout_space_view

区域3为system_icons_container

主要布局文件是

frameworks\base\packages\SystemUI\res\layout\keyguard_status_bar.xml

其本身是个KeyguardStatusBarView,布局代码如下图所示:

我们这里分析下cutout_space_view这个区域,大小计算方法主要在updateLayoutParamsNoCutout中处理

 

 案例二:

布局文件为keyguard_status_bar.xml

主要的布局信息包括左侧时钟、中间刘海区域以及右侧的系统图标及运营商区域。

 1.2解锁状态栏

用户通过解锁之后进入主界面下的状态栏,其布局展示如下:

案例一:

布局文件为:status_bar.xml

在最左侧预留了运营商信息空间,之后放置时钟控件信息,之后放置通知图标,右侧放置系统图标信息。

这里通知显示有两种布局,一种是左侧显示,一种是中间显示,默认情况下使用左侧显示通知,另一种情况是,将刘海隐藏显示中间的通知,代码展示如下:

案例二:

主要布局是frameworks\base\packages\SystemUI\res\layout\status_bar.xml,其本身是

个PhoneStatusBarView,布局代码如下。

 1.3 下拉状态栏

 该状态为用户通过解锁之后进入主界面下,在下拉通知栏显示的状态栏,显示布局如下:

案例一:

该布局主要包含了三大模块,首先是顶部显示时钟信息的布局,之后是显示日期、系统图标、电量的布局,再之后是显示快捷设置的一些按钮,这里主要是对前两块进行分析。

其布局文件包括:quick_status_bar_expanded_header.xml

上侧时钟布局文件: quick_status_bar_header_system_icons.xm

之后date布局文件:quick_qs_status_icons.xml

其父布局为qs_panel.xml,其中qs_panel.xml的父布局为status_bar_expanded.xml 与锁屏状态下一致

案例二:

其由frameworks\base\packages\SystemUI\res\layout\quick_status_bar_header_system_icons.xml和frameworks\base\packages\SystemUI\res\layout\quick_qs_status_icons.xml两个布局文件构成,其中引用的quick_status_bar_header_system_icons是顶部显示时钟和电池的布局, quick_qs_status_icons为日期和系统图标显示的布局,这两个布局都是由frameworks\base\packages\SystemUI\src\com\android\systemui\qs\QuickStatusBarHeader.java来控制。 

二.状态栏加载流程

其启动加载流程如下:

前面的工作都是为了启动SystemUI这个进程,具体的布局加载都在StatusBar这个类中实现。

     通过启动start方法,在这个方法中调用了createAndWindows(),主要是在这个方法中实现对视图的处理。

     之后进入makeStatusBarView这个方法,在这个方法中调用了inflateStatusBarWindow()

加载了各种状态栏布局的父布局,并在NotificationPanelViewController对锁屏状态栏的视图做了处理,

之后在makeStatusBarView方法中加载qs_panel视图,也就是解锁下拉通知栏的状态栏布局

之后加载Status_bar视图

在这里已经把所有关于通知栏视图加载完成,在之前介绍过这之后进行显示视图,通过WindowManager的addView方法显示。


 

标签:status,xml,显示,bar,状态栏,流程,布局,SystemUI
来源: https://blog.csdn.net/xxdw1992/article/details/121676333

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有