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">
Я предполагаю, что вы используете панель инструментов в верхней панели. Из всех ответов, которые я думаю, это самый простой для реализации. И работает на всех версиях 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>
Я думаю, что это просто проблема деятельности.Я использовал тот же код, что и ты, и он работает.
во-первых ,я использовал 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>