標籤:resource att enabled nts man activity arc 5.0 status
1.在根部局給一個id,然後直接設定就行了layout.setSystemUiVisibility(View.INVISIBLE);
狀態列就沒有了。
2.如果你只是想改變狀態列顏色的也可以
//5.0以前這樣
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT&&Build.VERSION.SDK_INT<Build.VERSION_CODES.LOLLIPOP) { setTranslucentStatus(true); SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.top_bg_color);//通知欄所需顏色 }
private void setTranslucentStatus(boolean on) { Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; if (on) { winParams.flags |= bits; } else { winParams.flags &= ~bits; } win.setAttributes(winParams);}
//5.0以後這樣if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(getResources().getColor(R.color.top_bg_color));
}
View類提供了setSystemUiVisibility和getSystemUiVisibility方法,這兩個方法實現對狀態列的動態顯示或隱藏的操作,以及擷取狀態列當前可見度。
setSystemUiVisibility方法傳入的實參分析:
setSystemUiVisibility(int visibility)方法可傳入的實參為:
1. View.SYSTEM_UI_FLAG_VISIBLE:顯示狀態列,
Activity不全螢幕顯示(恢複到有狀態的正常情況)。
2. View.INVISIBLE:隱藏狀態列,同時Activity會伸展全螢幕顯示。
3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全螢幕顯示,且狀態列被隱藏覆蓋掉。
4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全螢幕顯示,但狀態列不會被隱藏覆蓋,狀態列依然可見,Activity頂端布局部分會被狀態遮住。
5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隱藏虛擬按鍵(導覽列)。有些手機會用虛擬按鍵來代替物理按鍵。
8. View.SYSTEM_UI_FLAG_LOW_PROFILE:狀態列顯示處於低能顯示狀態(low profile模式),狀態列上一些表徵圖顯示會被隱藏
android啟動畫面隱藏狀態列全螢幕顯示