如何使用AppCompactActivity更改操作栏颜色?

时间:2015-08-07 13:06:29

标签: android

我正在尝试将操作栏颜色设置为蓝色但始终为黑色,我正在使用样式的文件:styles.xml和styles-21.xml。 这是styles-21.xml中的代码:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <!-- Main theme colors -->
    <!--   your app branding color for the app bar -->
    <item name="android:colorPrimary">@color/blue_color_500</item>
    <!--   darker variant for the status bar and contextual app bars -->
    <item name="android:colorPrimaryDark">@color/blue_color_900</item>
    <!--   theme UI controls like checkboxes and text fields -->
    <item name="android:colorAccent">@color/purple_color_200</item>

    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="@android:background">@color/blue_color_500</item>
    <item name="background">@color/blue_color_500</item>
</style>

这是styles.xml的样式:

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <!-- Customize your theme here. -->
    <!-- Main theme colors -->
    <!--   your app branding color for the app bar -->
    <item name="colorPrimary">@color/blue_color_500</item>
    <!--   darker variant for the status bar and contextual app bars -->
    <item name="colorPrimaryDark">@color/blue_color_900</item>
    <!--   theme UI controls like checkboxes and text fields -->
    <item name="colorAccent">@color/purple_color_200</item>

    <item name="android:windowBackground">@color/blue_color_50</item>
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/blue_color_500</item>
    <item name="background">@color/blue_color_500</item>
</style>

我的类继承自AppCompatActivity ...

有任何帮助吗? 提前谢谢。

3 个答案:

答案 0 :(得分:0)

从官方Android文档中检查this link。在使用兼容性库时,您不仅应使用android:actionBarStyle,还应使用actionBarStyle

答案 1 :(得分:0)

以下是更改操作栏颜色的方法:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/mainColor</item>
    <item name="colorPrimaryDark">@color/mainColorDark</item>

    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:actionBarWidgetTheme">@style/ActionBarWidget</item>

</style>

<style name="Widget.MyApp.ActionBar" parent="AppTheme">
    <item name="theme">@style/ThemeOverlay.MyApp.ActionBar</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>

<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
    <item name="android:textColorPrimary">@color/white</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/mainColor</item>
</style>
<style name="ActionBarWidget" parent="Theme.AppCompat.Light.DarkActionBar"/>

<color name="mainColor">#E41F26</color>

操作栏将在最后定义的mainColor上着色!我希望它会有所帮助

答案 2 :(得分:0)

非常感谢,你说得对,这是代码修复它:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <!-- Customize your theme here. -->
    <!-- Main theme colors -->
    <!--   your app branding color for the app bar -->
    <item name="colorPrimary">@color/blue_color_500</item>
    <!--   darker variant for the status bar and contextual app bars -->
    <item name="colorPrimaryDark">@color/blue_color_900</item>
    <!--   theme UI controls like checkboxes and text fields -->
    <item name="colorAccent">@color/purple_color_200</item>

    <item name="android:windowBackground">@color/blue_color_50</item>
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/blue_color_500</item>
    <item name="background">@color/blue_color_500</item>
</style>