Intereting Posts
Ящик навигации (Google+ и YouTube) Этот класс обработчика должен быть статическим или может возникнуть утечка: AsyncQueryHandler Получить контекст в службе Отправлять ключевые слова и информацию о таргетинге в AdMob для получения более качественных объявлений. Пользовательский support.v7.widget.Toolbar не отображается на устройстве ContentResolver.requestSync в адаптере синхронизации не работает в Android Как импортировать собственную библиотеку (.so-файл) в Eclipse? Получение ошибки с использованием ScrimInsetFrameLayout Отправить push-уведомление с сервера на Android-устройство в Java Установить фоновый цвет изображения поверхности Подключение к парному Bluetooth-устройству (BluetoothSocket) в Android 2.1 Что такое идеальный подход для обучения Android Development для разработчика C #? Retrofit – многостраничный запрос: требуемый параметр «файл» параметра MultipartFile отсутствует Разделение двух целых чисел на Java дает мне 0 или 100? Как уловить изменения размера виджета на устройствах, где onAppWidgetOptionsChanged не вызван?

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

У меня возникли проблемы с программным изменением цвета заголовка actionroids для v11 и выше. Я могу сделать это в xml, но вам нужно динамически изменять его в коде. Как мне это сделать? Заранее спасибо.

Solutions Collecting From Web of "Как изменить цвет заголовка панели действий в коде"

Идентификатор заголовка ActionBar скрыт, или, другими словами, он является внутренним и доступ к нему не может быть выполнен обычным образом. Вы можете ссылаться на него, используя Resources.getIdentifier затем View.findViewById .

Захватите идентификатор для action_bar_title

 int titleId = getResources().getIdentifier("action_bar_title", "id", "android"); 

Теперь вы можете использовать ID с TextView

 TextView abTitle = (TextView) findViewById(titleId); abTitle.setTextColor(colorId); 

Вы можете использовать SpannableString и ForegroundColorSpan для установки цвета заголовка

  Spannable text = new SpannableString(actionBar.getTitle()); text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); actionBar.setTitle(text); 

Другой способ – использовать Html

 getSupportActionBar().setTitle((Html.fromHtml("<font color=\"#FF4444\">" + getString(R.string.some_string) + "</font>"))); 

Если вы используете Sherlock Actionbar, вы можете использовать sherlock-actionbar-id для поддерживаемых панелей действий (Android ниже 3.0)

 int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android"); if ( 0 == titleId ) titleId = com.actionbarsherlock.R.id.abs__action_bar_title; 

Если вы используете библиотеку v7 appcompat (протестирована с r22), вы можете вызвать setTitleTextColor() на объекте Toolbar который заменяет панель действий для всех уровней API. Например:

 Toolbar actionBarToolbar = (Toolbar)activity.findViewById(R.id.action_bar); if (actionBarToolbar != null) actionBarToolbar.setTitleTextColor(Color.RED);