Android - 更改操作栏标题文本颜色

jac*_*ast 17 android textview android-actionbar

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

<application
        android:theme="@style/AppTheme">
</application>
Run Code Online (Sandbox Code Playgroud)

在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>
Run Code Online (Sandbox Code Playgroud)

这不起作用,但我不明白为什么.这应该根据这个答案工作.textview样式是否正常工作.

我做错了什么?

更新:改为满足下面的Grace Feng答案

Par*_*han 14

使用SpannableString我们可以设置Text ColorActionbar title

SpannableString s = new SpannableString(title);
s.setSpan(new ForegroundColorSpan(Color.GREEN), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setTitle(s);
Run Code Online (Sandbox Code Playgroud)


pan*_*nda 9

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

<style name="AppTheme.TextView" parent="android:Widget.TextView">
Run Code Online (Sandbox Code Playgroud)

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

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
Run Code Online (Sandbox Code Playgroud)

<style name="AppTheme.TextView" parent="@android:Widget.TextView">
Run Code Online (Sandbox Code Playgroud)

  • 哦,这很令人尴尬.无论如何,这无论如何都不起作用,动作栏标题仍为白色,而textviews则保持黑色 (2认同)

jac*_*ast 1

在 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>
Run Code Online (Sandbox Code Playgroud)

  • 我按照这个示例将 @color/my_color 设置为 #000000,操作栏中的文本仍然是白色。 (2认同)