Android 顯示、隱藏狀態(tài)欄和導(dǎo)航欄
控制狀態(tài)欄顯示,Activity的主題中配置全屏屬性
<item name="android:windowFullscreen">true</item>
控制狀態(tài)欄顯示坤塞,在setContentView之前設(shè)置全屏的flag
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
控制狀態(tài)欄顯示,在任何位置通過添加和移除全屏的flag
// 隱藏狀態(tài)欄
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 顯示狀態(tài)欄
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
控制狀態(tài)欄和導(dǎo)航欄顯示澈蚌,setSystemUiVisibility
View.SYSTEM_UI_FLAG_LAYOUT_STABLE:全屏顯示時(shí)保證尺寸不變摹芙。
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏顯示,狀態(tài)欄顯示在Activity頁面上面宛瞄。
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隱藏導(dǎo)航欄
View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏顯示浮禾,且狀態(tài)欄被隱藏覆蓋掉。
View.SYSTEM_UI_FLAG_VISIBLE:Activity非全屏顯示份汗,顯示狀態(tài)欄和導(dǎo)航欄盈电。
View.INVISIBLE:Activity伸展全屏顯示,隱藏狀態(tài)欄杯活。
View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY:必須配合View.SYSTEM_UI_FLAG_FULLSCREEN和View.SYSTEM_UI_FLAG_HIDE_NAVIGATION組合使用匆帚,達(dá)到的效果是拉出狀態(tài)欄和導(dǎo)航欄后顯示一會兒消失。
// 全屏展示
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// 全屏顯示轩猩,隱藏狀態(tài)欄和導(dǎo)航欄卷扮,拉出狀態(tài)欄和導(dǎo)航欄顯示一會兒后消失。
activity.getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
} else {
// 全屏顯示均践,隱藏狀態(tài)欄
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
}
}
// 非全屏顯示晤锹,顯示狀態(tài)欄和導(dǎo)航欄
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);