SystemUI 学习1

1 导航栏视图
(1)平台在问对SystemUI内存优化时,重新更改了导航栏布局。
导航栏总布局文件:hw_navigation_bar.xml(对应NavigationBarView类)。
竖屏下对应的是旋转角度为0的rot0布局;横屏下对应的是旋转角度为90的rot90布局。
no_expand_port:代表没有下拉通知栏的导航栏;
no_expand_port_swap:代表没有下拉通知栏的导航栏,并且back与recent按键替换位置;
has_expand_port:代表有下拉通知栏的导航栏;
has_expand_port_swap:代表有下拉通知栏的导航栏,并且back与recent按键替换位置;
具体显示何种样式,可以在设置->导航栏->请选择虚拟导航栏组合里面进行旋转。
(2)在PhoneStatusBar.java的makeStatusBarView中会去加载导航栏布局:
mNavigationBarView = (NavigationBarView) View.inflate(context, R.layout.hw_navigation_bar, null);
并且设置自动隐藏按钮监听事件:
mNavigationBarView.setHideButtonOnClickListener(mHideButtonClickListener);
(3)在执行了inflate方法后,就会去调用NavigationBarView.java中的onFinishInflate(),
方法里面会去获取到hide手动隐藏按键视图。
(4)在执行完PhoneStatusBar.java的makeStatusBarView方法后,会接着去执行如下流程,获取导航栏中其他几个按键的视图,并且注册监听事件。
HwPhoneStatusBar.bindViews->PhoneStatusBar.addNavigationBar->prepareNavigationBarView->SystemUiUtil.addWindowView(mWindowManager, mNavigationBarView, ge

猜你喜欢

转载自blog.csdn.net/qq_42894864/article/details/102687618