Я смог настроить фон панели действий, изображение логотипа и цвет текста, используя следующие рекомендации:
Android: Как изменить значок «Домой» панели действий, чтобы он отличался от значка приложения?
Цвет текста
ActionBar Фоновое изображение ActionBar
Последнее, что я хочу настроить, это изображение кнопки «Назад». По умолчанию он серый, и мне бы хотелось, чтобы он был белым. Сработает либо изменение цвета, указание рисунка или просто его прозрачность (и добавление шеврона в мое настроенное изображение логотипа). Как мне это сделать?
android
android-actionbar
Сунил Говда
источник
источник
setDisplayHomeAsUpEnabled()
наActionBar
. Специально НЕ предполагается просто возвращаться назад. Это означает, что нажатие на значок приложения приведет к «восходящей» иерархии, а не к предыдущему действию (как и кнопка НАЗАД на системной панели).Ответы:
Индикатор «вверх» предоставлен графикой, указанной в
homeAsUpIndicator
атрибуте темы. Чтобы переопределить его собственной пользовательской версией, это будет примерно так:Если вы поддерживаете pre-3.0 с вашим приложением, убедитесь, что вы поместили эту версию пользовательской темы
values-v11
или аналогичную.источник
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
не работал для меня, но<item name="homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
сделал. Угадайте, что это версия для AndroidNavigation Drawer
? Я предполагаю, чтоActionBarDrawerToggle
заменяет индикатор «вверх» на свой собственный, поэтому установка его на стиль не имеет никакого эффекта ...Таким образом, вы можете легко изменить его программно с помощью функции homeAsUpIndicator (), которая добавлена в Android API уровня 18 и выше.
ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
Если вы используете библиотеку поддержки
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
источник
drawerToggle.setDrawerIndicatorEnabled(false);
прежде чем менять индикаторЯ проверил вопрос. Вот шаги, которым я следую. Исходный код размещен на GitHub: https://github.com/jiahaoliuliu/sherlockActionBarLab
Переопределите фактический стиль для устройств до v11.
Скопируйте и вставьте следующий код в файл styles.xml папки значений по умолчанию.
Обратите внимание, что родитель может быть изменен на любую тему Шерлока.
Переопределите фактический стиль для устройств v11 +.
В той же папке, где находятся значения папок, создайте новую папку под названием values-v11. Android будет автоматически искать содержимое этой папки для устройств с API или выше.
Создайте новый файл с именем styles.xml и вставьте в него следующий код:
Обратите внимание, что имя стиля должно совпадать с именем файла в папке значений по умолчанию, и вместо элемента homeAsUpIndicator он называется android: homeAsUpIndicator.
Проблема заключается в том, что для устройств с API 11 или выше, панель действий Sherlock использует панель действий по умолчанию, которая поставляется с Android, и ее ключ называется android: homeAsUpIndicator. Но для устройств с API 10 или ниже, Sherlock Action Bar использует свой собственный ActionBar, который в качестве индикатора «вверх» называется простым «homeAsUpIndicator».
Используйте новую тему в манифесте
Замените тему для приложения / действия в файле AndroidManifest:
источник
Изменение назад значка навигации отличается для ActionBar и панели инструментов.
Для переопределенного
homeAsUpIndicator
атрибута ActionBar :Для
navigationIcon
атрибута переопределения панели инструментов :источник
Я сделал приведенный ниже код
onCreate()
и работал со мнойисточник
Если вы используете панель инструментов, вам не нужны эти решения. Вам нужно только изменить тему панели инструментов
Если вы используете dark.actionBar, кнопка «Назад» будет белой, в противном случае, если вы используете светлую тему панели действий, она будет черной.
источник
лоток это:
внутри
onCreate()
;источник
Я использовал изображение back.png в файле проекта menifest.xml. это прекрасно работает в проекте.
источник
У меня была та же проблема направления значка кнопки «Домой» на панели действий, из-за отсутствия управления значком в каталоге ресурсов Gradle.
как в каталоге ресурсов Arabic Gradle вы помещаете значок в x-hdpi, а в английском ресурсе Gradle то же имя значка, которое вы помещаете в папку с различной плотностью, например xx-hdpi, так что в APK будут два одинаковых имени значка в разных каталогах, поэтому ваше устройство выберет значок в зависимости от плотности может быть RTL или LTR
источник