0

我正在使用 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?

谢谢,托拜厄斯

--- 从这里编辑 ---

我刚刚发现如果我以编程方式使用我的主题

setTheme(R.style.Widget_AppTheme_ActionBar);

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

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

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

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

有人知道吗?

4

1 回答 1

8

好的,很抱歉回答我自己的问题。我终于意识到了我的问题。当然,我必须使用这两个论点

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

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

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

于 2012-10-18T11:27:44.477 回答