Android-Изменение Цвета Текста Заголовка Actionbar

Я разрабатываю приложение, и я хочу change the textcolor of the actionbar title. теперь я определил тему в своем манифесте:

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

который определяется в стилях.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 не работает.

что я делаю неправильно?

обновление: изменено, чтобы встретить Грейс Фэн ответ ниже

11 ответов


используя 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">

вы можете найти, как настроить ActionBar здесь. Я рекомендую использовать ToolBar и Theme.AppCompat вместо - пример.


Я предполагаю, что вы используете панель инструментов в верхней панели. Из всех ответов, которые я думаю, это самый простой для реализации. И работает на всех версиях api.

Так вот,

действие заголовка использует textColorPrimary как цвет текста. Поэтому изменить это в стилях.xml создайте новый стиль с элементом для textColorPrimary и установите любой цвет, который вам нужен.

<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>

Я думаю, что это просто проблема деятельности.Я использовал тот же код, что и ты, и он работает.enter image description here

во-первых ,я использовал AppCompatActivity в качестве базовой активности и получаю ошибку. и тогда я использую и работает. На мой взгляд, ваш код используется для темы для темы.Хоро, а теперь мы используем тему.Совместимости приложений . Поэтому, если вы хотите изменить, просто reference изменение фона и цвета текста темы AppCompat Light DarkActionBar на android. Это работает для мне.Удачи тебе.


кажется, вы использовали style вместо theme. стили и темы отличаются. Так замените

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

С

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

блуждая по 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>

Я не знаю решения, но я смог изменить цвет текста между белым и черным с помощью этого метода.

Так, в стилях.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>

Если вы измените то, что внутри родителя="..."для темных или светлых тем он адаптирует цвет текста к этим темам. Например, прямо сейчас у вас есть темная тема, а текст белый, но когда я изменить "тему.Совместимости приложений.Свет" цвет текста становится черным.

надеюсь, что это поможет в некоторых путь.


изменить Activity тема:

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

   <item name="android:actionMenuTextColor">@color/white</item>

</style>