Как настроить кнопку назад на панели действий
Я смог настроить фон панели действий, изображение логотипа и цвет текста, используя предложения из них:
Android: Как изменить значок ActionBar "Home", чтобы быть чем-то другим, чем значок приложения?
ActionBar цвет текста
ActionBar фоновое изображение
последняя часть, которую я хочу настроить, - это изображение кнопки "Назад". Это серый по умолчанию, и я хотел бы, чтобы он был белым. Либо изменение цвета, указание drawable или просто сделать его прозрачным (и добавление шеврона к моему настроенному изображению логотипа) будет работать. Как мне это сделать?
8 ответов:
таким образом, вы можете изменить его программно легко с помощью функции homeAsUpIndicator (), которая добавлена в android API уровня 18 и выше.
ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);Если вы используете библиотеки поддержки
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
Я проверил вопрос. Вот шаги, которые я следую. Исходный код размещен на GitHub: https://github.com/jiahaoliuliu/sherlockActionBarLab
переопределите фактический стиль для устройств pre-v11.
скопируйте и вставьте следующий код в стили файлов.xml папки значений по умолчанию.
<resources> <style name="MyCustomTheme" parent="Theme.Sherlock.Light"> <item name="homeAsUpIndicator">@drawable/ic_home_up</item> </style> </resources>обратите внимание, что родитель может быть изменен на любую тему Шерлока.
переопределить фактические стиль для устройств v11+.
в той же папке, где находятся значения папки, создайте новую папку с именем values-v11. Android будет автоматически искать содержимое этой папки для устройств с API или выше.
создайте новый файл под названием стили.xml и вставьте следующий код в файл:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyCustomTheme" parent="Theme.Sherlock.Light"> <item name="android:homeAsUpIndicator">@drawable/ic_home_up</item> </style> </resources>обратите внимание, что имя стиля должно совпадать с именем файла в папке значений по умолчанию, и вместо элемента homeAsUpIndicator он называется android: homeAsUpIndicator.
проблема элемента заключается в том, что для устройств с API 11 или выше, Sherlock Action Bar использует панель действий по умолчанию, которая поставляется с Android, имя ключа которой android:homeAsUpIndicator. Но для устройств с API 10 или ниже, Sherlock Action Bar использует свой собственный ActionBar, который home as up indicator называется простым "homeAsUpIndicator".
используйте новую тему в манифесте
заменить тему для применение / активность в файле AndroidManifest:
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/MyCustomTheme" >
изменение назад значок навигации отличается для панели действий и панели инструментов.
для переопределения панели действий :
<style name="CustomThemeActionBar" parent="android:Theme.Holo"> <item name="homeAsUpIndicator">@drawable/ic_nav_back</item> </style>для переопределения панели инструментов :
<style name="CustomThemeToolbar" parent="Theme.AppCompat.Light.NoActionBar"> <item name="navigationIcon">@drawable/ic_nav_back</item> </style>
Я сделал ниже код
onCreate()иgetSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
Если вы используете панель инструментов, вам не нужны эти решения. Вам нужно только изменить тему панели инструментов
app:theme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"Если вы используете темные.actionBar кнопка "Назад" будет белой, если вы используете тему light actionbar, она будет черной.
Я вернулся.png изображение в проекте menifest.XML-файл. это прекрасно работает в проекте.
<activity android:name=".YourActivity" android:icon="@drawable/back" android:label="@string/app_name" > </activity>
У меня была такая же проблема с направлением значка кнопки "Домой" на панели действий,из-за отсутствия управления значком в значке каталога ресурсов Gradle
как в арабском каталоге Gradle resource вы помещаете значок в x-hdpi, а в английском Gradle resource такое же имя значка вы помещаете в другую папку плотности ,такую как xx-hdpi, так что в APK будет два одинаковых имени значков в разных каталогах,поэтому ваше устройство выберет значок, зависящий от плотности, может быть RTL или LTR
Comments