状态栏和导航栏颜色不会更改

时间:2014-11-22 12:37:13

标签: android android-layout android-5.0-lollipop android-styles

我想在Android 5 Lolipop应用中更改导航栏和状态栏的颜色。

以下是我的清单sdk设置:

<uses-sdk android:minSdkVersion="21"
          android:targetSdkVersion="21"
          android:maxSdkVersion="21" />

我在my_style.xml文件中有这个:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- inherit from the material theme -->
    <style name="AppTheme" parent="android:Theme.Material">
        <!-- Main theme colors -->
        <!--   your app branding color for the app bar -->
        <item name="android:colorPrimary">@color/primary</item>
        <!--   darker variant for the status bar and contextual app bars -->
        <item name="android:colorPrimaryDark">@color/primary_dark</item>
        <!--   theme UI controls like checkboxes and text fields -->
        <item name="android:colorAccent">@color/accent</item>

        <item name="android:statusBarColor">@color/navbar</item>
        <item name="android:navigationBarColor">@color/navbar</item>
    </style>
</resources>

如果我更改了条形码的android:colorPrimary颜色(不是状态栏/导航栏),则IDE中的布局也会发生变化,调试Android应用时,statusBarColornavigationBarColor不会做任何事情(https://developer.android.com/training/material/theme.html - 在这里你可以看到它应该)。我甚至试图这样做:

getWindow.setStatusBarColor(Integer.parseInt("00FF00", 16))

但它也不起作用。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我通过添加标志(Scala代码)解决了这个问题:

getWindow.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)

setContentView(R.layout.main)

它适用于应用,但仍然布局编辑器不会显示android:statusBarColor

android:navigationBarColorapp_style.xml项的更改