ActionBar标题颜色不会更改

PaN*_*TEC 0 android android-actionbar

我想将actionbar的标题颜色更改为白色.我在样式上声明:

<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!--
    Theme customizations available in newer API levels can go in
    res/values-vXX/styles.xml, while customizations related to
    backward-compatibility can go here.
-->
</style>

<!-- Application theme -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowActionBar">true</item>
<item name="android:actionBarStyle">@style/ProjActionBar</item>
<item name="android:actionBarTabTextStyle">@style/ProjActionBar.TitleTextStyle</item>
</style>

<!-- ActionBar Style -->
<style name="ProjActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/b</item>
    <item name="android:backgroundStacked">@color/k1</item>
    <!-- This is when tabs are splitted into a second line -->
</style>

<style name="ProjActionBar.TitleTextStyle" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/w</item>
    <item name="android:textSize">13sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我将一个使用属性"textColor"声明的"actionBarTabTextStyle"声明为我在colors.xml中声明的@ color/w:

<color name="w">#FFFFFFFF</color>
Run Code Online (Sandbox Code Playgroud)

发生了什么事?为什么动作栏标题不会改变textColor?

我的项目是针对最小的SDK 11 sdkVersion 17(Honeycomb 3.0+)

Sco*_*t W 6

问题是您实际上没有更改标题文本样式.您已更改选项卡文本的样式.要更改标题的文本样式,你要设置android:titleTextStyle和可选android:subtitleTextStyle你的ProjActionBar风格.

所以,你ProjActionBar变成了这个:

<style name="ProjActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/b</item>
    <item name="android:backgroundStacked">@color/k1</item>
    <item name="android:titleTextStyle">@style/ProjActionBar.TitleTextStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)

请注意,这假设您使用的是本机ActionBar组件(正如您继承的那样@android:style/Widget.Holo.Light.ActionBar).如果您想要向后兼容,则必须继承您的样式Widget.AppCompat.Light.ActionBar并使用textStyle而不是android:textStyle.