为什么我无法更改操作栏文本颜色?

时间:2014-04-01 16:01:43

标签: java android colors tabs android-actionbar

我使用此生成器为我的应用创建自定义主题: http://jgilfelt.github.io/android-actionbarstylegenerator/

但有一点我想改变,这个生成器不支持: 动作栏的文本颜色。

我尝试使用以下代码手动执行此操作:

<resources>

<style name="Theme.Bessel" parent="@android:style/Theme.Holo.Light">
    <item name="android:titleTextStyle">@style/MyTextAppearance</item>
</style>

<style name="MyTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#F8F8FF</item>
</style>

</resources>

但我的动作栏的文字颜色保持不变。有什么提示吗?

更新

<resources>

<style name="Theme.Bessel" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/Your.ActionBar</item>


</style>
<style name="Your.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
    <item name="android:background">@drawable/ab_background_textured_bessel</item>
    <item name="android:backgroundStacked">@drawable/ab_stacked_solid_bessel</item>
    <item name="android:backgroundSplit">@drawable/ab_background_textured_bessel</item>
    <item name="android:progressBarStyle">@style/ProgressBar.Bessel</item>
    <item name="android:titleTextStyle">@style/MyTextAppearance</item>
</style>

<style name="MyTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#F8F8FF</item>
</style>
</resources>

1 个答案:

答案 0 :(得分:1)

您需要将android:titleTextStyle应用于Widget.ActionBar固有的样式。因此,在您的情况下看起来像Widget.Holo.Light.ActionBar

<style name="Your.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:titleTextStyle">@style/MyTextAppearance</item>
</style>

然后使用ActionBar在您的根主题中应用android:actionBarStyle样式。

<style name="Theme.Bessel" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/Your.ActionBar</item>
</style>

要更改标签文字颜色,您需要一个继承Widget.ActionBar.TabText的主题,在您的情况下看起来像是Widget.Holo.Light.ActionBar.TabText。然后在根主题中应用样式使用android:actionBarTabTextStyle

<style name="Theme.Bessel" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarTabTextStyle">@style/Your.Widget.ActionBar.TabText</item>
</style>

<style name="Your.Widget.ActionBar.TabText" parent="@android:style/Widget.Holo.Light.ActionBar.TabText">
    <item name="android:textColor">#F8F8FF</item>
</style>