Android 4 ActionBar - 使用Action Bar Sherlock时更改textColor

时间:2012-10-18 08:15:53

标签: android styles actionbarsherlock textcolor

我正在使用ActionBarSherlock,几乎所有东西似乎都运行良好。 但我希望标题文字颜色为白色。使用Sherlock-Actionbar时效果很好但不适用于Android 4中的原始ActionBar

在绝望中我尝试了这个:

 <style name="Widget.AppTheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar">
        <item name="titleTextStyle">@style/TextAppearance.AppTheme.Widget.ActionBar.Title</item>
        <item name="android:gravity">center</item>

        <item name="android:background">@color/white</item>
        <item name="android:textColor">@color/white</item>
</style>

发现背景改变为白色。所以这显然是改变的正确场所。但仍然将textColor更改为白色对我不起作用。

我用这个作为我的主题:

<style name="AppTheme" parent="Theme.Sherlock.Light">
        <item name="android:actionBarStyle">@style/Widget.AppTheme.ActionBar</item>
        <item name="actionBarStyle">@style/Widget.AppTheme.ActionBar</item>

        <item name="textColorPrimary">@color/white</item>
        <item name="android:textColor">@color/white</item>
        ...
</style>

所以任何想法可能是什么问题?为什么它与背景一起工作而不是textColor?

谢谢,  托拜厄斯

---从这里编辑---

我刚刚发现,如果我使用我的主题programmaticall喜欢

setTheme(R.style.Widget_AppTheme_ActionBar);

有效。但是,如果我依赖于我在Manifest中的设置,它就不会。

<application ... android:theme="@style/AppTheme" >

<application ... android:theme="@style/Widget_AppTheme_ActionBar" >

会很好 - 即使AppTheme中的其他样式不会被设置。 所以看起来使用定义自己的ActionBarStyle的主题不起作用。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:8)

好的,抱歉回答我自己的问题。我终于意识到了我的问题。 因为我必须使用这两个参数

<item name="titleTextStyle">@style/TextAppearance.AppTheme.Widget.ActionBar.Title</item>
<item name="android:titleTextStyle">@style/TextAppearance.AppTheme.Widget.ActionBar.Title</item>

因为第一个用于Android 2.x的ActionBarSherlock,第二个用于本机Action Bar。

我希望这可以帮助那些遇到同样麻烦的人。