android StatusBar和NavigationBar分析
(2015-12-21 14:13:56)分类: android |
android StatusBar和NavigationBar分析
整理的比较乱,希望有所帮助。
1. StatusBar和NavigationBar是什么
StatusBar是手机顶部状态栏
NavigationBar是手机底部“导航栏”,即Home,back,menu键
2. 隐藏StatusBar
frameworks/base/core/res/res/values/dimens.xml
把 25dip 修改为0dip
3. 隐藏NavigationBar
frameworks/base/packages/SystemUI/src/com/android/systemui/
statusbar/phone/PhoneStatusBar.java
在start函数中注释掉 "addNavigationBar();"
这是最最简单最粗暴的修改,一般不建议这么做,同样可以修改xml文件来实现
frameworks/base/core/res/res/values/config.xml
true//此处true即表示要显示NavigationBar,false表示不显示NavigationBar
还有另一种方法,通过属性设置
//属性设置可以写在init.rc内
setprop qemu.hw.mainkeys 0
如果同时设置xml和属性,那么以设置的属性会覆盖xml的设置,以属性设置为主
>>>下面简单此处代码的流程
1).首先在/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java$makeStatusBarView方法
try {
boolean showNav = mWindowManagerService.hasNavigationBar();
if (DEBUG) Log.v(TAG, "hasNavigationBar=" + showNav);
if (showNav) {
//{}进而的代码用来设置view是否显示和对应的Listener
mNavigationBarView =
(NavigationBarView) View.inflate(context, R.layout.navigation_bar,
null);
mNavigationBarView.setDisabledFlags(mDisabled);
mNavigationBarView.setBar(this);
mNavigationBarView.setOnVerticalChangedListener(
new NavigationBarView.OnVerticalChangedListener() {
@Override
public void onVerticalChanged(boolean isVertical) {
if (mSearchPanelView != null) {
mSearchPanelView.setHorizontal(isVertical);
整理的比较乱,希望有所帮助。
1. StatusBar和NavigationBar是什么
StatusBar是手机顶部状态栏
2. 隐藏StatusBar
frameworks/base/core/res/res/values/dimens.xml
把
3. 隐藏NavigationBar
frameworks/base/packages/SystemUI/src/com/android/systemui/
statusbar/phone/PhoneStatusBar.java
在start函数中注释掉 "addNavigationBar();"
这是最最简单最粗暴的修改,一般不建议这么做,同样可以修改xml文件来实现
frameworks/base/core/res/res/values/config.xml
true//此处true即表示要显示NavigationBar,false表示不显示NavigationBar
还有另一种方法,通过属性设置
//属性设置可以写在init.rc内
setprop qemu.hw.mainkeys 0
如果同时设置xml和属性,那么以设置的属性会覆盖xml的设置,以属性设置为主
>>>下面简单此处代码的流程
1).首先在/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java$makeStatusBarView方法
try {