沉浸式狀態欄,有時可能會遇到狀態欄背景色和裏面圖標顏色混合的問題,難以區分,比如狀態欄背景色設置成白色,這時圖標也是白色的。圖標就會顯示不清楚。
我們可以在Activity的onCreate裏調用以下方法解決。
public static void setDarkStatusIcon(Window window, boolean bDark) {
if (window != null) {
View decorView = window.getDecorView();
if(decorView != null){
int vis = decorView.getSystemUiVisibility();
if(bDark){
//設置黑色狀態欄圖標
vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
} else{
//設置白色狀態欄圖標
vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
}
decorView.setSystemUiVisibility(vis);
}
}
}
上面的圖,系統默認白色的狀態欄圖標。下邊的圖,調用該方法後,狀態欄內的圖標不再是白色的了。就和statusbar的顏色區分開了