設定狀態列和標題欄的樣式
設定狀態列和標題欄的樣式
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以上。