通過設(shè)置Theme主題設(shè)置狀態(tài)欄透明
1)xml布局中設(shè)置:
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
注意:4.4以前不支持沉浸式狀態(tài)欄境氢,而5.0之后的狀態(tài)欄默認(rèn)會(huì)有一層陰影
處理方式:
<item name="android:windowTranslucentStatus">false</item>
<item name="android:statusBarColor">@android:color/transparent</item>
2) 代碼設(shè)置:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
//對(duì)應(yīng)xml設(shè)置
//<item name="android:windowTranslucentStatus">false</item>
//<item name="android:statusBarColor">@android:color/transparent</item>
//<item name="android:windowTranslucentNavigation">true</item>
getWindow().setStatusBarColor(0);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}else {
//對(duì)應(yīng)xml設(shè)置
//<item name="android:windowTranslucentStatus">true</item>
//<item name="android:windowTranslucentNavigation">true</item>
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
}
保證內(nèi)容不擴(kuò)充到狀態(tài)欄
1)通過設(shè)置布局文件根View屬性:android:fitsSystemWindows="true"
i)android:fitSystemWindow屬性拌屏,只有在 sdk>=19,即系統(tǒng)版本大于等于4.4才會(huì)生效
ii)只有在設(shè)置了StatusBar或者NavigationBar為透明時(shí)生效
iii)fitSystemWindow設(shè)置為true時(shí),View的padding設(shè)置會(huì)失效畔规,自動(dòng)添加一個(gè)值等于狀態(tài)欄或虛擬導(dǎo)航欄高度的paddingTop,paddingBottom
2)在xml布局中添加占位狀態(tài)欄View
3)在代碼中添加占位狀態(tài)欄View躺盛,并添加paddingTop