沉浸式状态栏状态栏背景色和里面图标颜色混合(修改状态栏图标颜色)
沉浸式状态栏,可能会遇到状态栏背景色和里面图标颜色混合的问题,难以区分,比如状态栏背景色设置成白色,这时图标也是白色的。
如图:
这时可以在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);
}
}
}
尽管系统默认白色的状态栏图标,调用该方法后,状态栏内的图标不再是白色的了。