【问题标题】:How to change color of ActionBar's Title Text on Android 4.3 api 18如何在 Android 4.3 api 18 上更改 ActionBar 标题文本的颜色
【发布时间】:2014-03-12 13:42:38
【问题描述】:

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

GingerBread 中标题文本的颜色发生了变化,但是当我在手机上使用 JellyBean 运行应用程序时,颜色并没有改变。

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

在 JellyBean 上它仍然是黑色的:

这是我的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>

主祭:

android:theme="@style/AppTheme" 

【问题讨论】:

    标签: android android-actionbar-compat


    【解决方案1】:

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

    对于 14 级及以上的 API,我必须使用 android:actionBarStyleandroid:titleTextStyleandroid:textColor

    所以 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>
    

    【讨论】:

    • 我不知道为什么,但对我来说,只有删除“android:” @style/MyActionBar@style/TitleBarTextColor
    【解决方案2】:

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

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

    这似乎适用于最新的操作系统版本。

    【讨论】:

    • 我只想更改标题的颜色,这就是我使用 TitleBarTextColor 的原因。我认为您的解决方案会影响整个 ActionBar 上的文本,例如子文本、菜单文本等。
    • 你说得对。它修改了整个 ActionBar。不确定我是否在我处理过的任何应用程序(或有需要)中管理了您所要求的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多