window.setStatusBarColor不起作用?

时间:2018-06-13 22:48:08

标签: android colors styles themes

在onCreate中我这样做:

    this.setTheme(getTheme());

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        Window w = getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        w.setFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS , WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS );

        w.setStatusBarColor(Color.GREEN);
    }

我想要实现的是在应用我常用的主题后,我想将状态栏设置为绿色。但这不会发生。该行已执行,但颜色不会改变。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为旗帜有问题。我用这个代码

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.primary_dark));
}