設置狀態欄和標題欄的樣式
Android setSystemUiVisibility(visible)方法詳解
這個方法可以詳細的設置各種標題欄的狀態欄的樣式.visible的值來決定
1.SYSTEM_ UI_ FLAG_ LOW_ PROFILE: 影藏不重要的狀態欄圖標,導航欄中相應的圖標都變成了一個小點。點擊狀態欄或者標題欄還原成正常的狀態
2.SYSTEM_ UI_ FLAG_ HIDE_ NAVIGATION: 隱藏導航欄,點擊屏幕的任意地方,導航欄出現
3.SYSTEM_ UI_ FLAG_ FULLSCREEN: 隱藏狀態欄,從狀態欄位置往下拉,狀態欄重新出現
4.SYSTEM_ UI_ FLAG_ LAYOUT_ HIDE_ NAVIGATION:將布局擴展到導航欄和狀態欄后面
5.SYSTEM_ UI_ FLAG_ LAYOUT_ FULLSCREEN:將布局擴展到狀態欄后面
6.SYSTEM_ UI_ FLAG_ LAYOUT_ STABLE:穩定布局
7.SYSTEM_ UI_ FLAG_ IMMERSIVE:配合
SYSTEM_ UI_ FLAG_ HIDE_ NAVIGATION
和SYSTEM_ UI_ FLAG_ FULLSCREEN
使用,使狀態欄和導航欄真正的進入沉浸模式。點擊屏幕任意區域,不會退出全屏模式,只有用戶上下拉狀態欄或者導航欄時才會退出。8.SYSTEM_ UI_ FLAG_ IMMERSIVE_ STICKY:效果同
SYSTEM_ UI_ FLAG_ IMMERSIVE
,當用戶上下拉狀態欄或者導航欄時,這些系統欄會以半透明的狀態顯示,并且在一段時間后消失。
我們可以使用上面的方法來設置標題欄和狀態欄的顏色
沉浸式狀態欄的代碼實現
if(Build.VERSION.SDK_INT> Build.VERSION_CODES.LOLLIPOP){Window window = getWindow();window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); //讓window來繪制狀態欄和導航欄window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);window.setNavigationBarColor(Color.TRANSPARENT);window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);window.setStatusBarColor(Color.TRANSPARENT);window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);}
我們一般可以使用SYSTEM_ UI_ FLAG_ LAYOUT_ HIDE_ NAVIGATION: 這個flag值來將狀態欄和導航欄與背景圖片完全融合在一起。
注: buide版本必須在sdk 21以上,
window.addFlags(WindowManager.LayoutParams.FLAG_DRAW_SYSTEM_BAR_BACKGROUND):該標志表明用window來決定狀態欄和導航欄的背景