Android – 更改操作栏标题文字颜色

我正在开发一个应用程序,我想change the textcolor of the actionbar title 。 现在,我在我的清单中定义了一个主题:

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

在styles.xml中定义:

 <style name="AppTheme" parent="android:style/Theme.Holo.Light"> <item name="android:textViewStyle">@style/AppTheme.TextView</item> <item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item> </style> <style name="AppTheme.ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar"> <item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item> </style> <style name="AppTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@color/themeapp</item> </style> <style name="AppTheme.TextView" parent="@android:style/Widget.TextView"> <item name="android:textColor">#FFFFFF</item> </style> 

这不起作用,但我不明白为什么。 这应该根据这个答案工作,无论是textview风格工作。

我做错了什么?

更新:更改为符合下面的Grace Feng答案

Solutions Collecting From Web of "Android – 更改操作栏标题文字颜色"

使用SpannableString我们可以设置操作Actionbar title文本颜色

 SpannableString s = new SpannableString(title); s.setSpan(new ForegroundColorSpan(Color.GREEN), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); getSupportActionBar().setTitle(s); 
 <style name="AppTheme" parent="android:style/Theme.Holo.Light"> <style name="AppTheme.TextView" parent="android:Widget.TextView"> 

你在这里错过了一个符号“@”?

 <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 

 <style name="AppTheme.TextView" parent="@android:Widget.TextView"> 

你可以在这里find如何自定义ActionBar 。 我build议使用ToolBarTheme.AppCompat来代替 – 例子 。

我假设你正在使用ToolBar作为ActionBar。 在所有的答案中,我认为这是最容易实现的。 并适用于所有的api版本。

所以在这里,

操作栏标题使用textColorPrimary作为其文本颜色。 所以要在styles.xml中改变它,用textColorPrimary的项目创build一个新的样式,并设置你需要的颜色。

 <style name="appBarTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:textColorPrimary">@color/colorRed</item> </style> 

现在添加该样式作为您在xml中的工具栏的主题。

 <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_scrollFlags="enterAlways" android:id="@+id/toolbar" android:theme="@style/appBarTheme"> </android.support.v7.widget.Toolbar> 

现在你得到了你所需要的。

谢谢

只需添加app:titleTextColor="@color/CUSTOM_COLOR"如下所示:

 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/yellow_light" app:titleTextColor="@color/CUSTOM_COLOR" app:popupTheme="@style/AppTheme.PopupOverlay"/> 

当我得到同样的问题,我用:

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

我认为这只是你活动的问题。我使用了和你一样的代码,而且工作。 在这里输入图像说明

首先,我使用AppCompatActivity作为基本的活动,并得到错误。 然后我使用活动,它的工作原理。 在我看来,你的代码是用于Theme.Holo的主题,现在我们使用Theme.AppCompat。 所以,如果你想要改变,只需在Android上引用AppCompat Light DarkActionBar Theme的更改背景和文本颜色即可 。 它适合我,祝你好运。

似乎你已经使用style而不是theme 。 样式和主题不同 。 所以replace

 <style name="AppTheme" parent="android:style/Theme.Holo.Light"> 

 <style name="AppTheme" parent="android:Theme.Light"> 

我不知道解决scheme,但我可以用这种方法改变白色和黑色之间的文本颜色。

所以,在styles.xml中你有:

 <resources> <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> <item name="colorPrimary">#673AB7</item> <item name="colorPrimaryDark">#512DA8</item> <item name="colorAccent">#FF4081</item> </style> </resources> 

如果将父类=“…”内的内容更改为黑色或浅色主题,则会使文本颜色适应这些主题。 例如,现在你有一个黑暗的主题,文本是白色的,但是当我更改为“Theme.AppCompat.Light”文本颜色变成黑色。

希望它有助于某种方式。

Activity主题更改为:

 <style name="ThemeName" parent="android:Theme.Holo.Light"> <item name="android:actionMenuTextColor">@color/white</item> </style> 

徘徊在StackOverflow周围我发现这个答案终于奏效了。

我在这里报告:

 <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/ActionBar</item> ... </style> <style name="ActionBar" parent="@android:style/Widget.ActionBar"> <item name="android:titleTextStyle">@style/ActionBar.Title</item> <item name="android:subtitleTextStyle">@style/ActionBar.Subtitle</item> ... </style> <style name="ActionBar.Title"> <item name="android:textColor">@color/my_color</item> </style> <style name="ActionBar.Subtitle"> <item name="android:textColor">@color/my_color</item> </style>