前言
通過setSystemUiVisibility(int)方法,改變狀態欄或者其他系統UI的可見性。
getWindow().getDecorView().setSystemUiVisibility(int visibility);
默認顯示狀態欄和導航欄,SYSTEM_UI_FLAG_VISIBLE
- SYSTEM_UI_FLAG_LOW_PROFILE
低調模式,隱藏不重要的狀態欄圖標,導航欄中相應的圖標都變成了一個小點。點擊狀態欄或者導航欄還原成正常的狀態。
- SYSTEM_UI_FLAG_HIDE_NAVIGATION
隱藏導航欄,點擊屏幕任意區域,導航欄將重新出現。
- SYSTEM_UI_FLAG_FULLSCREEN
隱藏狀態欄,從狀態欄位置下拉,狀態欄將重新出現。
- SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
將布局內容拓展到導航欄和狀態欄的后面。
- SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
將布局內容拓展到狀態欄的后面。
- SYSTEM_UI_FLAG_LAYOUT_STABLE
穩定布局,需要配合SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION和SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN使用,同時設置布局的android:fitsSystemWindows屬性。
未使用SYSTEM_UI_FLAG_LAYOUT_STABLE的效果。
使用SYSTEM_UI_FLAG_LAYOUT_STABLE的效果。
7. SYSTEM_UI_FLAG_IMMERSIVE
配合SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN使用,使狀態欄和導航欄真正的進入沉浸模式。點擊屏幕任意區域,不會退出全屏模式,只有用戶上下拉狀態欄或者導航欄時才會退出。
- SYSTEM_UI_FLAG_IMMERSIVE_STICKY
效果同SYSTEM_UI_FLAG_IMMERSIVE,當用戶上下拉狀態欄或者導航欄時,這些系統欄會以半透明的狀態顯示,並且在一段時間后消失。
- SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
設置狀態欄的顏色,6.0版本以后有效。