100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > SystemUI之NavigationBar导航栏

SystemUI之NavigationBar导航栏

时间:2023-03-16 13:42:13

相关推荐

SystemUI之NavigationBar导航栏

SystemUI之NavigationBar导航栏

布局结构

navigation_bar_window.xml à navigation_bar.xml

[NavigationBarFrame [NavigationBarView [NavigationBarInflaterView ] ] ]

View结构图:

二、代码控制流程

2.1、NavigationBar创建及View添加

StatusBar.java:

start() à createAndAddWindows(result) à makeStatusBarView(result) à createNavigationBar(result) à mNavigationBarController.createNavigationBars(……)

NavigationBarController.java:

createNavigationBars(……) à createNavigationBar(……) à

navBar. createView (……)

NavigationBar.java(Contains logic for a navigation bar view):

备注:导航栏的具体位置在框架DisplayPolicy中根据方向等因素确定:

services\core\java\com\android\server\wm\DisplayPolicy.java

通过上述代码

1、使用navigation_bar_window和navigation_bar填充布局

2、创建NavigationBarFrame并且添加到windowManager中

2.2、导航栏图标加载及事件逻辑

2.2.1、布局文件添加

navigation_bar_window.xml:

NavigationBarFrame,对DeadZone功能下的touch事件做了处理。

navigation_bar.xml:

NavigationBarInflaterView:

1、getDefaultLayout决定导航栏显示哪些控件。

一般情况下是home,recent,back这三个键,如果需要加其他的就在这配置,同时在createView添加对应的布局文件

2、createView方法创建对应的布局文件,并且添加到导航栏中。

2.2.2、资源文件添加、点击触摸事件

1、NavigationBarView.java(图标资源文件加载)

reloadNavIcons( ) à updateIcons(Configuration.EMPTY) à

2、NavigationBar.java(事件处理)

prepareNavigationBarView()

参考链接:

SystemUI虚拟导航键加载流

SystemUI之NavigationBar

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。