操作栏兼容性更改标题文本颜色

6
我正在尝试修改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个回答

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>

将我的操作栏变成了白色。 - zed

5

很尴尬。我没有注意到values-v14/-文件夹(覆盖了values/),这是ActionBarStyleGenererator创建的。在values-v14中使用android前缀的样式,它就可以工作:

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

感谢您回答自己的问题 +1!救了我的一天!嘿,为什么我们在v11中必须加上--android-prefix--呢? - LOG_TAG
不客气!我不能说,我把它放在那里,它工作了,没有进一步调查。 - jannej

3

发现于溢出样式

我一直试图在方向改变时保持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()中工作。


0

@TNR 是正确的,但是您应该仔细检查您的布局 XML 文件是否已经使用不同的样式覆盖了 android:theme 属性。

如果您已经生成了布局文件,通常会出现这种情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接