Как установить цвет заголовка для новой панели инструментов?

Я использую новую панель инструментов V7, и для меня жизнь не может понять, как изменить цвет названия. Я установил @style панели инструментов в стиль, объявленный в styles.xml, и применил titleTextStyle с textColor. Я что-то упускаю? Я кодирую Lollipop, но тестирую в настоящее время на устройстве Kitkat.

styles.xml

   true false   @color/actionbar_background @style/ActionBar.TitleTextStyle   @color/actionbar_title_text   

actionbar.xml:

  

Вариант 1) Быстрый и простой способ (только панель инструментов)

Поскольку appcompat-v7-r23 вы можете использовать следующие атрибуты непосредственно на Toolbar или в своем стиле:

 app:titleTextColor="@color/primary_text" app:subtitleTextColor="@color/secondary_text" 

Если ваш минимальный SDK равен 23, и вы используете встроенную Toolbar просто измените префикс пространства имен на android .

В Java вы можете использовать следующие методы:

 toolbar.setTitleTextColor(Color.WHITE); toolbar.setSubtitleTextColor(Color.WHITE); 

Эти методы принимают цвет int не идентификатор ресурса цвета!

Вариант 2) Переопределить стиль и тематические атрибуты панели инструментов

макет / xxx.xml

  

Значения / styles.xml

   

Помогите! Мои значки тоже изменили цвет!

@PeterKnut сообщила, что это влияет на цвет кнопки переполнения, кнопку ящика навигации и кнопку возврата. Он также изменяет цвет текста SearchView .

Что касается цветов значков: colorControlNormal наследует от

  • android:textColorPrimary для темных тем (белый на черном)
  • android:textColorSecondary для легких тем (черный на белом)

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

 #de000000 

Была ошибка в appcompat-v7 до r23, которая потребовала, чтобы вы также переопределили родной экземпляр следующим образом:

 ?colorControlNormal 

Помогите! Мой SearchView – это беспорядок!

Примечание. Этот раздел, возможно, устарел.

Поскольку вы используете виджет поиска, который по какой-то причине использует другую стрелку назад (не визуально, технически), чем та, которая включена в appcompat-v7, вы должны установить ее вручную в теме приложения . Образцы библиотеки поддержки корректно окрашиваются. В противном случае это всегда было бы белым.

 @drawable/abc_ic_ab_back_mtrl_am_alpha 

Что касается текста вида поиска … нет простого способа. После копания через его источник я нашел способ добраться до текстового представления. Я не проверял это, поэтому, пожалуйста, дайте мне знать в комментариях, если это не сработает.

 SearchView sv = ...; // get your search view instance in onCreateOptionsMenu // prefix identifier with "android:" if you're using native SearchView TextView tv = sv.findViewById(getResources().getIdentifier("id/search_src_text", null, null)); tv.setTextColor(Color.GREEN); // and of course specify your own color 

Бонус: переопределить атрибуты стиля и стиля ActionBar

Соответствующий стиль для панели действий appcompat-v7 по умолчанию будет выглядеть так:

    

Вот мое решение, если вам нужно изменить только цвет заголовка, а не цвет текста в виджетах поиска.

макет / toolbar.xml

  

Значения / themes.xml

      

Аналогичным образом вы также можете установить subtitleTextAppearance.

Если вы поддерживаете API 23 и выше, теперь вы можете использовать атрибут titleTextColor для установки цвета заголовка панели инструментов.

макет / toolbar.xml

  

MyActivity.java

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar) toolbar.setTitleTextColor(Color.WHITE); 

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

FractalWrench находится на правильном пути, но его можно использовать ниже API 23 и его не нужно устанавливать на панели инструментов.

Как говорили другие, вы можете установить стиль на панели инструментов с помощью

 app:theme="@style/ActionBar" 

и в этом стиле вы можете установить цвет текста заголовка с помощью

 #00f 

для pre API 23 или для 23+

 your colour 

Полный xml

   

Сохраняет все атрибуты, которые могут быть установлены для панели инструментов.

                                           

Настройка app:titleTextColor на моем android.support.v7.widget.Toolbar работает для меня на Android 4.4 и 6.0 тоже с com.android.support:appcompat-v7:23.1.0 :

  

Это сработало для меня

    

Самый простой способ изменить цвет заголовка Toolbar с помощью CollapsingToolbarLayout .

Добавьте ниже стили в CollapsingToolbarLayout

  

styles.xml

   

Создайте панель инструментов в xml … toolbar.xml:

  

Затем добавьте следующее в свой toolbar.xml:

 app:titleTextColor="@color/colorText" app:title="@string/app_name"> 

Remeber @ color / colorText – это просто ваш файл color.xml с атрибутом цвета с именем colorText и вашим цветом. Это лучший способ вызывать ваши строки, а не жестко кодировать ваш цвет внутри вашего toolbar.xml. У вас также есть другие возможности для изменения вашего текста, например: textAppearance … и т. Д. … просто введите приложение: текст … и intelisense предоставит вам варианты в студии android.

ваша последняя панель инструментов должна выглядеть так:

    

NB: Эта панель инструментов должна находиться внутри вашей activity_main.xml.Easy Peasie

Другой вариант – сделать все это в своем classе:

 Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setTitleTextColor(Color.WHITE); 

Удачи

Изменить цвет

  

/>

 Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar); myToolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.Auth_Background)); setSupportActionBar(myToolbar); 
    

Если вы можете использовать appcompat-v7 app: titleTextColor = “# fff”>

   
 public class MyToolbar extends android.support.v7.widget.Toolbar { public MyToolbar(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); AppCompatTextView textView = (AppCompatTextView) getChildAt(0); if (textView!=null) textView.setTextAppearance(getContext(), R.style.TitleStyle); } 

}

Или простое использование из MainActivity:

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarMain); setSupportActionBar(toolbar); ((AppCompatTextView) toolbar.getChildAt(0)).setTextAppearance(this, R.style.TitleStyle); 

style.xml

  
Interesting Posts

Доступ к идентификатору / имени пользователя учетной записи Google через Android

Меньше: быстрый переход к номеру строки в большом файле

Как разобрать JSON в Android?

Какие параметры следует использовать при создании файлов 7zip, чтобы получить максимальное сжатие при сжатии PDF-файлов?

Являются ли session и sessionScope одинаковыми в JSP EL?

утечка памяти? почему java.lang.ref.Finalizer есть столько памяти

Проверьте, содержит ли массив Bash значение

Мне нужны все три конструктора для пользовательского представления Android?

Запись содержимого в новое окно с помощью JQuery

Странные хиты на порту 2703

Отключить блокировку экрана

Использовать функцию стрелки в вычисляемом vue не работает

Android: Как связать spinner с пользовательским списком объектов?

Какое лучшее решение для резервного копирования Ubuntu для нетехнического пользователя?

Как исправить двойные кодированные символы UTF8 (в таблице utf-8)

Давайте будем гением компьютера.