概述:
- 4.4之前可以隱藏狀態(tài)欄
- 4.4可以透明狀態(tài)欄,布局移動到狀態(tài)欄下面屿聋。
- 5.0可以改變狀態(tài)欄的顏色
- 6.0可以改變狀態(tài)欄字體的顏色
4.4(res/values-v19)
android:windowTranslucentStatus 設置為true可以透明狀態(tài)欄扎瓶,布局浸入到布局中寝并,
1.fitSystemWindows可以使布局下移,狀態(tài)欄的顏色和布局背景色一致垮卓。
2.可以自己實現一個和狀態(tài)欄等高的布局鹉戚,來改變狀態(tài)欄的背景色(但是要適配劉海機型鲜戒,布局的高度要和劉海一致)
<style name="AppTheme.ImmersiveThemewitletext">
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
代碼的方式:
private void init1(View view) {
// 布局延伸至狀態(tài)欄下邊。
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
if (Build.VERSION.SDK_INT >= 21) {
if (Build.VERSION.SDK_INT >= 23) { // 6.0后的屬性
option = option | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; // 改變狀態(tài)欄字體的為深色
}
// 改變狀態(tài)欄的顏色
getWindow().setStatusBarColor(0x00ffffff); // 5.0可以改變屬性抹凳。
view.setSystemUiVisibility(option);
}
}
修改主題的方式:
5.0(res/values-v23)
在4.4的基礎上
1.可以改變狀態(tài)欄顏色
2.當<item name="android:windowTranslucentStatus">false</item>設置為false時可以通過view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) 來讓布局浸入到狀態(tài)欄
<style name="AppTheme.ImmersiveTheme">
<!-- true: status欄會有一層陰影袍啡;false: status欄沒有陰影-->
<item name="android:windowTranslucentStatus">false</item>
<!-- 使底部導航欄透明 -->
<item name="android:windowTranslucentNavigation">true</item>
<!-- 給status欄設置透明顏色 -->
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
6.0以后的版本(res/values-v23)
在5.0的基礎上,可以使時狀態(tài)欄的字體變?yōu)樯钌?/p>
<style name="AppTheme.ImmersiveThemewitletext">
<!-- true: status欄會有一層陰影却桶;false: status欄沒有陰影;當該項為true時境输,則name="android:windowLightStatusBar"設置無效,永遠為白色 -->
<!--當設置為false時可以通過
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) 來讓布局浸入到狀態(tài)欄 -->
<item name="android:windowTranslucentStatus">false</item>
<!-- 使底部導航欄透明 -->
<item name="android:windowTranslucentNavigation">true</item>
<!-- 給status欄設置透明顏色 -->
<item name="android:statusBarColor">@android:color/transparent</item>
<!-- true: status欄的圖標和文字為黑色颖系;false: sstatus欄的圖標和文字為白色 -->
<item name="android:windowLightStatusBar">false</item>
</style>