Как настроить кнопку "Назад" на ActionBar
Я смог настроить фон панели действий, изображение логотипа и цвет текста, используя следующие предложения:
Android: Как изменить ActionBar "Home" Значок будет чем-то отличным от значка приложения?
Цвет текста ActionBar
фоновое изображение ActionBar
Последний фрагмент, который я хочу настроить, - это обратное изображение кнопки. Он по умолчанию серый, и я бы хотел, чтобы он был белым. Либо изменив цвет, указав рисование, либо просто сделав его прозрачным (и добавив шеврон к моему настроенному изображению логотипа), это сработает. Как мне это сделать?
Ответы
Ответ 1
Индикатор доступности "вверх" предоставляется путем вытягивания, указанного в атрибуте homeAsUpIndicator
темы. Чтобы переопределить его с помощью собственной пользовательской версии, это будет примерно так:
<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
</style>
Если вы поддерживаете pre-3.0 своим приложением, убедитесь, что вы поместили эту версию настраиваемой темы в values-v11
или аналогичную.
Ответ 2
Таким образом, вы можете легко изменить его с помощью функции homeAsUpIndicator(), которая добавлена в API-интерфейсе Android 18 и выше.
ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
Если вы используете библиотеку поддержки
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
Ответ 3
Я проверил вопрос. Вот шаги, которые я следую. Исходный код размещен на GitHub:
https://github.com/jiahaoliuliu/sherlockActionBarLab
Переопределить фактический стиль для устройств pre-v11.
Скопируйте и вставьте следующий код в файл styles.xml папки значений по умолчанию.
<resources>
<style name="MyCustomTheme" parent="Theme.Sherlock.Light">
<item name="homeAsUpIndicator">@drawable/ic_home_up</item>
</style>
</resources>
Обратите внимание, что родительский объект может быть изменен на любую тему Шерлока.
Переопределить фактический стиль для устройств v11 +.
В той же папке, где находятся значения папки, создайте новую папку с именем values-v11. Android будет автоматически искать содержимое этой папки для устройств с API или выше.
Создайте новый файл с именем styles.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 или выше в Шерлок-панели действий используется панель действий по умолчанию, которая поставляется с Android, имя ключа которой - android: homeAsUpIndicator. Но для устройств с API 10 или ниже Шерлок Action Bar использует свой собственный ActionBar, который домашний индикатор вверх называется просто "homeAsUpIndicator".
Использовать новую тему в манифесте
Заменить тему приложения/действия в файле AndroidManifest:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyCustomTheme" >
Ответ 4
Изменение значка навигации по навигации отличается от ActionBar и панели инструментов.
Для атрибута ActionBar переопределить homeAsUpIndicator
:
<style name="CustomThemeActionBar" parent="android:Theme.Holo">
<item name="homeAsUpIndicator">@drawable/ic_nav_back</item>
</style>
Для атрибута панели инструментов navigationIcon
:
<style name="CustomThemeToolbar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="navigationIcon">@drawable/ic_nav_back</item>
</style>
Ответ 5
Я сделал код ниже onCreate()
и работал со мной
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
Ответ 6
Если вы используете панель инструментов, вам не нужны эти решения. Вам нужно только изменить тему панели инструментов
app:theme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Если вы используете dark.actionBar, ваша задняя кнопка будет белой, если вы используете легкую панель задач, она будет черной.
Ответ 7
Я использовал back.png изображение в файле проекта menifest.xml. он отлично работает в проекте.
<activity
android:name=".YourActivity"
android:icon="@drawable/back"
android:label="@string/app_name" >
</activity>
Ответ 8
У меня была такая же проблема с названием значка на значке Action-bar Home, из-за отсутствия управления значком в Gradle значке каталога ресурсов
как в арабском каталоге ресурсов Gradle, вы помещаете значок в x-hdpi и на английском языке Gradle ресурс, то же имя значка, которое вы помещаете в другую папку плотности, например xx-hdpi, так что в APK будут два одинаковых имени значков в разных каталогах, поэтому ваше устройство будет выбирать значок, зависящий от плотности, может быть RTL или LTR