Android 隐藏虚拟导航栏
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
禁止下拉通知栏
if (disable) {
mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
} else {
mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
}
隐藏导航栏时 禁止上滑出导航栏
frameworks / base/services/core/java/com/android/server/wm/DisplayPolicy.java
@Override
public void onSwipeFromBottom() {
synchronized (mLock) {
if (mNavigationBar != null
&& mNavigationBarPosition == NAV_BAR_BOTTOM) {
/* add for factorymode test begin */
if (getTestStatus()) { 判断条件
Slog.i(TAG, "onSwipeFromBottom Test, not requestTransientBars");
return;
}
/* add for factorymode test end */
requestTransientBars(mNavigationBar);
}
}
}
禁止下拉栏也可以这样改
@Override
public void onSwipeFromTop() {
synchronized (mLock) {
if (mStatusBar != null) {
/* add for factorymode test begin */
if (getTestStatus()) {判断条件
Slog.i(TAG, "onSwipeFromTop Test, not requestTransientBars");
return;
}
/* add for factorymode test end */
requestTransientBars(mStatusBar);
}
}
}
SystemUI setSystemUiVisibility参数属性
[ANSWER]
View.SYSTEM_UI_FLAG_FULLSCREEN | 全屏模式,占据整个屏幕,隐藏状态栏等界面,但是导航栏不会隐藏。如果用户进行操作,隐藏的系统界面会立马出现并清除该flag。 |
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | 隐藏导航栏,布局会往下移。如果用户进行操作,导航栏会立马出现并清除该flag。 |
View.SYSTEM_UI_FLAG_IMMERSIVE | 沉浸模式。修饰SYSTEM_UI_FLAG_HIDE_NAVIGATION,使用户操作不再显示导航栏(但是仍能通过从底部往上滑调出导航栏并清除flag)。单独使用无效。 |
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | 粘性沉浸模式。修饰SYSTEM_UI_FLAG_FULLSCREEN与SYSTEM_UI_FLAG_HIDE_NAVIGATION。用户操作不再清除flag,从边缘滑入可以调出状态栏和导航栏,并且过几秒之后自动隐藏。单独使用无效。 |
View. SYSTEM_UI_FLAG_LOW_PROFILE | 低配模式,设置后,系统状态栏的信号等图标消失,重要图标颜色变浅(如电量图标)。 |
View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 加入SYSTEM_UI_FLAG_LAYOUT_STABLE后,SystemUI发生变化也不会影响用户布局,单独使用该FLAG界面不会有任何变化。 |
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | 状态栏的图标以深色绘制。设置了这个属性,状态栏会以与状态栏背景颜色兼容的模式绘制。 |
View.SYSTEM_UI_FLAG_VISIBLE | 用户表示状态栏可见,默认flag |