Как я могу изменить цвет текста панели действий? Я унаследовал тему Holo Light, я могу изменить фон ActionBar, но я не выяснил, что является атрибутом для изменения цвета текста.
Хорошо, я могу изменить цвет текста с помощью атрибута android: textColorPrimary, но он также меняет цвет текста раскрывающегося меню, отображаемого при переполнении кнопок ActionBar. Есть идеи, как изменить цвет выпадающего меню / списка?
Ответы:
Хорошо, я нашел лучший способ. Теперь я могу изменить только цвет заголовка. Вы также можете настроить субтитры.
Вот мой файл styles.xml:
источник
Widget.Holo.Light.ActionBar
forMyTheme.ActionBarStyle
.Я нашел способ, который хорошо работает с любой разновидностью
ActionBar
( Sherlock , Compat и Native ):Просто используйте HTML, чтобы установить заголовок и указать цвет текста. Например, чтобы установить красный цвет текста ActionBar , просто сделайте это:
Вы также можете использовать красный шестнадцатеричный код
#FF0000
вместо словаred
. Если у вас возникли проблемы с этим, см. Android Html.fromHtml (String) не работает для <font color = '#'> текста </ font> .Кроме того, если вы хотите использовать цветовой ресурс, этот код можно использовать для получения правильной строки HEX и удаления альфы, если необходимо ( тег шрифта не поддерживает альфа):
источник
red
на" + color + "
.#FF0000
на"+color+"
.У меня была та же проблема, что и у вас, это тема Holo.Light, но я хотел стилизовать цвет ActionBar, поэтому мне нужно было также изменить цвет текста, а также заголовок и меню. Итак, в конце я пошел в git hub и просматривал исходный код, пока не нашел чертовски правильный стиль:
так что теперь все , что вам нужно сделать , это установить любого
@color/actionBarText
и@drawable/actionbarbground
вы хотите!источник
Идентификатор ActionBar не доступен напрямую, поэтому вам придется немного взломать здесь.
источник
NullPointerException
на этой линииactionBarTextView.setTextColor(Color.RED);
getIndentifier()
,(TextView) findViewById(com.actionbarsherlock.R.id.abs__action_bar_title);
сначала обратитесь к нему (убедитесь, что он не нулевой).Toolbar toolbar = findViewById(R.id.toolbar);
где в файле макета xml она окруженаcom.google.android.material.appbar.AppBarLayout
элементом, затемtoolbar.setTitleTextColor( getResources().getColor( R.color.colorViolet ) );
Это старая тема, но для будущих читателей с помощью панели инструментов все очень просто:
источник
я сделал простой однострочный код
источник
Добавьте его в корень панели действий. У меня была эта проблема.
actionMenuTextColor - изменяет цвет текста для текста панели действий, он никогда не работал, когда он был частью
Widget.Styled.ActionBar
, поэтому мне пришлось добавить его в корень. Другие 2 атрибута изменяют заголовок и подзаголовок панели действий.источник
Установка строки HTML на панели действий не работает для темы Материал в SDK v21 +
Если вы хотите изменить его, вы должны установить основной цвет текста в вашем style.xml
источник
Самый простой способ сделать это в файле styles.xml.
Шаблон Google styles.xml в настоящее время генерирует следующее:
Если вы добавите еще одну строку перед закрывающим тегом, как показано, это изменит цвет текста на тот, который должен быть с темной панелью действий:
Если вы хотите настроить цвет на что-то другое, вы можете указать свой собственный цвет в colors.xml или даже использовать встроенный цвет из Android с помощью атрибута android: textColorPrimary:
Примечание. При этом изменяется цвет заголовка, а также заголовков любых элементов меню, отображаемых в панели действий.
источник
Если вы хотите также стилизовать субтитры, просто добавьте их в свой собственный стиль.
Люди, которые хотят получить тот же результат для
AppCompat
библиотеки, вот что я использовал:источник
<item name="android:titleTextStyle">
и другое, и<item name="titleTextStyle">
потому что я использовал библиотеку поддержки appcompat.Нашел способ сделать это красиво, не создавая свой собственный макет на API> = 21.
Он будет только раскрашивать тексты и управлять рисованием внутри панели действий.
Надеюсь, это будет кому-то полезно.
источник
Многие ответы устарели, поэтому я обновлю тему и покажу, как изменить цвет текста и цвет фона на панели инструментов (панели инструментов) и во всплывающем меню панели действий.
Последний подход в Android (по состоянию на май 2018 г.) при работе с панелью действий (панель инструментов) - использовать тему с NoActionBar и использовать вместо нее панель инструментов.
так вот что вам нужно:
В Activity (которая расширяет AppCompatActivity) объявляют панель инструментов:
Добавьте панель инструментов в макет действия xml. Здесь мы установим наши пользовательские (перезаписанные темы), заметки,
android:theme="@style/ThemeOverlay.AppTheme.ActionBar"
иapp:popupTheme="@style/ThemeOverlay.AppTheme.PopupMenu"
они сделают свое дело.В вашем файле styles.xml вам придется перезаписать эти два стиля для установки пользовательских цветов:
Вот и все, ребята
PS, если вы спросите меня, я бы сказал: ДА, вся эта тема - адский беспорядок.
источник
Это решение я использовал после проверки всех ответов
Измените нужные цвета, это будет работать
источник
Эта функция работает хорошо
затем использовать его просто накормить его свой бар действия и новый цвет, т.е.
источник
Попробуйте добавить это в onCreate вашей деятельности. Работает практически на каждой версии Android.
или
источник
Попробуйте много методов, в младшей версии API возможный метод,
<item name="actionMenuTextColor">@color/your_color</item>
а не использование пространства имен Android, надеюсь, может помочь вампс:
источник
просто поместите это в своем стиле.
<item name="android:textColorPrimary">@color/yourcolor</item>
источник
Хорошим решением является использование SpannableStringBuilder и установка цвета таким образом. Вы даже можете использовать разные цвета на разных частях строки, добавлять изображения и т. Д.
Протестировано с новой библиотекой поддержки.
См. Android: раскраска части строки с использованием TextView.setText ()?
источник
Это не рекомендуемое решение, так как я собираюсь использовать Android Apis здесь, но мое приложение требует динмического изменения темы в условиях xml, что здесь невозможно, поэтому мне нужно это сделать. Но это решение работает очень хорошо.
Решение:--
источник
Для Android 5 (леденец на палочке) вам придется использовать android: actionBarPopupTheme, чтобы установить textColor для меню переполнения.
источник
Самый простой способ:
добавьте эти две строки в ваш файл styles.xml
Замените цвет своим цветом.
источник
Вы можете изменить цвет любого текста, используя атрибут html
<font>
непосредственно вxml
файлах. например вstrings.xml
:источник