如何在Android 4.3 api 18上更改ActionBar标题文本的颜色

时间:2014-03-12 13:42:38

标签: android android-actionbar-compat

我正在使用appcompat v7库来支持api级别8及以上的操作栏。我正在尝试更改操作栏标题文本的颜色。

标题文字的颜色在GingerBread中正在改变,但是当我使用JellyBean在手机上运行应用程序时,颜色不会改变。

在GingerBread标题上颜色变为红色:

enter image description here

在JellyBean上它仍然是黑色的:

enter image description here

这是我的styles.xml:

styles.xml:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarStyle</item>
    </style>

    <style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="titleTextStyle">@style/TitleBarTextColor</item>
    </style>

    <style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/red</item>
    </style>
    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>

v-11的styles.xml:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarStyle</item>
    </style>

</resources>

v-14的styles.xml:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarStyle</item>
    </style>
</resources>

Mainfest:

android:theme="@style/AppTheme" 

2 个答案:

答案 0 :(得分:15)

找到解决我自己问题的方法:

我必须使用android:actionBarStyleandroid:titleTextStyleandroid:textColor来支持14级及以上的api。

因此v-11的styles.xml将是:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle">@style/ActionBarStyle</item>
    </style>

    <style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="android:titleTextStyle">@style/TitleBarTextColor</item>
    </style>

    <style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/red</item>
    </style>
    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>

答案 1 :(得分:0)

我会在我的样式中使用以下内容作为当前主题,以便更新ActionBar中的文本颜色:

<item name="android:actionMenuTextColor">@color/Red</item>

在最新的OS版本中似乎对我有用。