沉浸式状态栏,有时可能会遇到状态栏背景色和里面图标颜色混合的问题,难以区分,比如状态栏背景色设置成白色,这时图标也是白色的。图标就会显示不清楚。
我们可以在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的颜色区分开了