Actionbar Compat更改标题textColor

时间:2013-12-06 15:15:27

标签: android android-actionbar-compat

我正在尝试修改ActionBarSupport标题的文本颜色。我使用ActionBarStyleGenererator创建了一个颜色正确的主题,效果很好。

在使用灯光主题时,我想将标题的颜色更改为白色(在生成器中我无法设置文本颜色(。由于多种原因,我无法使用黑暗的动作栏主题。我非常接近,只需要将标题变为白色; - )

我在这里做错了什么?

<style name="ActionBar.Transparent.MyApp" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="background">@drawable/ab_transparent_myapp</item>
    <item name="progressBarStyle">@style/ProgressBar.MyApp</item>
    <item name="titleTextStyle">@style/MyApp.TitleTextStyle</item>  
</style>

 <style name="MyApp.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.Base.ActionBar.Title">
    <item name="android:textColor">#ffffff</item>    
 </style>

4 个答案:

答案 0 :(得分:14)

以下代码对我有用。我希望它能帮到你。

<style name="AppTheme" parent="AppBaseTheme">
        <item name="actionBarStyle">@style/ActionBarCompat</item>
    </style>

    <style name="ActionBarCompat" parent="@style/Widget.AppCompat.Base.ActionBar">
        <item name="titleTextStyle">@style/titleStyle</item>
    </style>

    <style name="titleStyle" parent="@style/TextAppearance.AppCompat.Widget.Base.ActionBar.Title">
        <item name="android:textColor">@android:color/white</item>
    </style>

答案 1 :(得分:5)

尴尬。我没注意创建的值-v14 / -folder(覆盖vales /)ActionBarStyleGenererator。在values-v14中使用样式的android-prefix工作:

      <item name="android:titleTextStyle">@style/titleTextStyle</item>

答案 2 :(得分:3)

找到Overflow styling

在我从上面的网站获得线索之前,我一直试图通过方向更改保持ActionBar标题文字颜色没有太多运气。我将Spannable应用于标题。这是我在设置ActionBar时所做的事情:

    Spannable actionBarTitle = new SpannableString("Action Bar Title");
    actionBarTitle.setSpan(
            new ForegroundColorSpan(Color.WHITE),  
            0, 
            actionBarTitle.length(), 
            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    mActionBar.setTitle(actionBarTitle);

这需要在方向改变时执行。我从onCreate()调用它...不知道它是否在onConfigurationChange()中工作。

答案 3 :(得分:0)

@TNR是正确的,但是你应该仔细检查你的布局xml文件是否没有用不同的样式覆盖(P)属性。

如果您已生成布局文件

,通常会发生这种情况