Android(安卓)动态隐藏显示导航栏,状态栏
16lz
2021-12-19
Talk is cheap, show me the code.
--Linus Torvalds
Okay, here:
一、导航栏:
private void hideNavigationBar() {View decorView = getWindow().getDecorView();int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_FULLSCREEN;decorView.setSystemUiVisibility(uiOptions);}private void showNavigationBar() {View decorView = getWindow().getDecorView();int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE;decorView.setSystemUiVisibility(uiOptions);}
相关:
SYSTEM_UI_FLAG_VISIBLE——显示状态栏和导航栏
SYSTEM_UI_FLAG_LOW_PROFILE——此模式下,状态栏的图标可能是暗的
SYSTEM_UI_FLAG_HIDE_NAVIGATION——隐藏导航栏
SYSTEM_UI_FLAG_FULLSCREEN——全屏,隐藏状态栏和导航栏
SYSTEM_UI_FLAG_LAYOUT_STABLE
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN——全屏,隐藏导航栏,状态栏浮在布局上。
SYSTEM_UI_FLAG_IMMERSIVE——沉浸式:半透明的状态栏和导航栏
SYSTEM_UI_FLAG_IMMERSIVE_STICKY——粘性沉浸式
二、状态栏:
private void setStatusBarVisible(boolean show) {if (show) {int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE;uiFlags |= 0x00001000;getWindow().getDecorView().setSystemUiVisibility(uiFlags);} else {int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN| View.SYSTEM_UI_FLAG_FULLSCREEN;uiFlags |= 0x00001000;getWindow().getDecorView().setSystemUiVisibility(uiFlags);}}
三、导航栏和状态栏
private void setSystemUIVisible(boolean show) {if (show) {int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE;uiFlags |= 0x00001000;getWindow().getDecorView().setSystemUiVisibility(uiFlags);} else {int uiFlags = 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;uiFlags |= 0x00001000;getWindow().getDecorView().setSystemUiVisibility(uiFlags);}}
更多相关文章
- android:设置密码隐藏与显示
- Android屏幕方向及键盘状态
- Android沉浸式效果的实现—Sofia的使用
- Android沉浸式状态栏,看完这篇就够了!
- android UI进阶之android中隐藏的layout 抽屉的运用
- android中setVisibility方法无效的可能原因与解决办法
- Android(安卓)手动显示和隐藏软键盘
- android 隐藏虚拟按键
- Android(安卓)UI 学习