在更改为另一种颜色之前,android状态栏颜色显示为蓝色

时间:2018-04-07 22:39:39

标签: android

我编写了一个代码来更改状态栏的颜色,使用Java代码,如下所示:

if (android.os.Build.VERSION.SDK_INT >= 21) {
        Window window = this.getWindow();
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.setStatusBarColor(Color.parseColor("#d3d6db"));
    }

再次通过xml如下:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">#d3d6db</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

在这两种情况下,当应用程序启动时,状态栏显示为蓝色并更改为我选择的颜色。当WhatsApp等程序启动时,状态栏为绿色并保持不变,如何完成?

2 个答案:

答案 0 :(得分:0)

尝试包含

AppTheme

styles.xml下的constexpr

答案 1 :(得分:0)

我找到了解决方案 原因在于清单文件应该包含

android:minSdkVersion="the minimum version supports changing the status bar color"

选择版本后,状态栏颜色将是程序启动时选择的颜色