天天看点

沉浸式状态栏状态栏背景色和里面图标颜色混合(如何修改状态栏图标颜色)

沉浸式状态栏,有时可能会遇到状态栏背景色和里面图标颜色混合的问题,难以区分,比如状态栏背景色设置成白色,这时图标也是白色的。图标就会显示不清楚。

沉浸式状态栏状态栏背景色和里面图标颜色混合(如何修改状态栏图标颜色)

我们可以在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的颜色区分开了

沉浸式状态栏状态栏背景色和里面图标颜色混合(如何修改状态栏图标颜色)