it-swarm.com.ru

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 не работает.

что я делаю не так?

ОБНОВЛЕНИЕ: Изменено, чтобы встретить ответ Грейс Фэн ниже

17
jack_the_beast

блуждая вокруг 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>
0
jack_the_beast

Используя SpannableString мы можем установить цвет текста Actionbar title

SpannableString s = new SpannableString(title);
s.setSpan(new ForegroundColorSpan(Color.GREEN), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setTitle(s);
14
Parag Chauhan
<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">
9
panda

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

4
Vladimir Markeev

Просто добавьте 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"/>
2
Maximoapps Inc

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

Итак, вот оно,

Заголовок панели действий использует textColorPrimary в качестве цвета текста. Поэтому, чтобы изменить это в styles.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>

И теперь вы получили то, что вам нужно.

Спасибо

1
Akash Rudra

Когда я получил ту же проблему, я использовал: 

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

<item name="Android:titleTextStyle">@style/ActionBarTextStyle</item>
1
IDmikael

Измените тему Activity следующим образом:

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

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

</style>
0
coder

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

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

С

<style name="AppTheme" parent="Android:Theme.Light">
0
Hi I'm Frogatto

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

Во-первых, я использовал AppCompatActivity в качестве базовой активности и получил ошибку. а затем я использую активность, и она работает . По моему мнению, ваш код используется для темы для Theme.Holo, и теперь мы используем Theme.AppCompat. Так что если вы хотите изменить, просто укажите Изменение фона и цвета текста AppCompat Light DarkActionBar Theme на Android . Это работает для меня. Удачи вам.

0
sunday

Только что с этой проблемой, наконец-то разобрался . В вашем style.xml не указывайте цвет фона для вашей панели инструментов . Затем определите цвет в каждом файле layout.xml:

<Android.support.v7.widget.Toolbar
    Android:id="@+id/my_toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="#B678EE"
    Android:elevation="4dp"
    Android:theme="@style/ToolbarTheme"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Это дает вам гибкость, чтобы иметь возможность легко иметь разные цвета панели действий в зависимости от активности, если это необходимо.

0
SentientFlesh

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

итак, в файле 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>

если вы измените то, что находится внутри parent = "..." на темные или светлые темы, он адаптирует цвет текста к этим темам. Например, сейчас у вас есть темная тема, а текст белый, но когда я изменяю на «Theme.AppCompat.Light», цвет текста становится черным.

Надеюсь, это поможет каким-то образом.

0
Max