android - 如何根据android中的某些条件将状态栏颜色设置和重置为原始颜色

标签 android statusbar

我想改变状态栏的颜色,并按照指定的方式做了同样的事情here .我有以下疑问。 1) 但我想根据某些情况将状态栏颜色重置为原始颜色,我该怎么做。 我试过这样。

public class StoreDisableHelper {

    public static void changeStatusBarColor(boolean status,Activity activity){
        Window window = activity.getWindow();
        if(status){


// clear FLAG_TRANSLUCENT_STATUS flag:
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

// finally change the color
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                window.setStatusBarColor(activity.getResources().getColor(R.color.theme_red));
            }

        }
        else{
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            window.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        }

    }
}

当条件为假时,我正在重置

最佳答案

这个这个:

https://gist.github.com/MrThiago/4897424c3c773aec57081325f273311a

private static int defaultStatusBarColor;

public static void changeStatusBarColor(Activity context, boolean change, int color){
    if (Build.VERSION.SDK_INT >= 21)
    {
        Window window = context.getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

        if(change){
            defaultStatusBarColor = window.getStatusBarColor();
            window.setStatusBarColor(color);
        }
        else{
            // reset
            window.setStatusBarColor(defaultStatusBarColor);
        }
    }
}

关于android - 如何根据android中的某些条件将状态栏颜色设置和重置为原始颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36155683/

相关文章:

VBA 状态栏

iphone - UIView 不处理触摸

android - 如何仅在触发特定 Activity 后启动 FCM ID 服务?

ios - 如何阻止 tabbarcontrol 中的 uitableview 与状态栏重叠?

ios - 隐藏在模态视图中的状态栏(在全屏演示中)

ios - [iOS]如何像Facebook Paper一样覆盖状态栏?

java - 在 Android 中签名数据并在 python 中验证它

android - 带有错误处理和进度对话框的通用 AsyncTask

android - 关闭 GPS 时广播接收器被调用 2 次?

java - Android:数组循环返回空元素