在AppCompat 21中使用Light.DarkActionBar主题更改ActionBar标题文本颜色

我正在使用v7 appcompat 21库在前棒棒糖设备上使用新的材质样式。 我的styles.xml如下所示:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:textColorPrimary">#ff0000</item> <item name="android:textColorPrimaryInverse">#ff0000</item> </style> 

我正在尝试更改操作栏上的文字颜色。 但不pipe我为textColorPrimary或​​textColorPrimaryInverse放置什么颜色都是白色的。 如果我从Theme.AppCompatinheritance,我可以覆盖“textColorPrimary”,如果我从Theme.AppCompat.Lightinheritance,我可以覆盖“textColorPrimaryInverse”。 但是在使用Light.DarkActionBar主题时,这两者都不起作用。

我绝对使用AppTheme,因为设置像colorPrimary属性来更改操作栏背景颜色工作正常。 我没有使用任何其他资源限定符样式文件。

我已经挖通过Android的样式文件,似乎无法弄清楚什么属性重写。 有任何想法吗? 这是一个appcompat错误?

你可以用主题的actionBarStyle属性来改变它。

 <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> <item name="titleTextStyle">@style/MyTitleTextStyle</item> </style> <style name="MyTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">CHANGE_COLOR_HERE</item> </style> 

这将使您的工具栏标题使用白色:

 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" /> 

要了解ThemeOverlay.AppCompat.Dark.ActionBarTheme.AppCompat.Light.DarkActionBar之间的ThemeOverlay.AppCompat.Dark.ActionBarTheme.AppCompat.Light.DarkActionBar检查此答案

确保你在所有的值文件夹中进行更改,如“values-v11”,“values-v14”等。如果存在。

否则,请确保您在上面显示的相同“AppTheme”正在应用程序中使用。

请张贴您完整的style.xml和清单代码指的风格,这将提供更多的见解你的问题。

您也可以尝试设置应用程序:主题应用程序:popup 主题属性在你的工具栏。

尝试在你的活动的onCreate中添加这个。 几乎每个Android版本都可以使用。

对于java活动:

  actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>")); 

对于碎片:

 getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>")); 

我使用了生成的布局xml文件,并没有注意到android:theme属性被覆盖。

你检查过你的吗? 🙂

尝试这个:

 <item name="actionMenuTextColor">@color/red</item>