Как настроить кнопку «Назад» на ActionBar

Я смог настроить фон панели действий, изображение логотипа и цвет текста, используя следующие предложения:
Android: Как изменить значок «Главная» ActionBar, чтобы быть чем-то другим, кроме значка приложения?
Цвет текста ActionBar
Фоновый рисунок ActionBar

Последняя часть, которую я хочу настроить, – это обратное изображение кнопки. По умолчанию он серый, и я бы хотел, чтобы он был белым. Либо изменив цвет, указав, что он будет доступен или просто сделает его прозрачным (и добавит шеврон к моему настроенному логотипу), будет работать. Как мне это сделать?

Solutions Collecting From Web of "Как настроить кнопку «Назад» на ActionBar"

Индикатор доступности «вверх» предоставляется путем вытягивания, указанного в 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 или аналогичные.

Таким образом, вы можете легко изменить его с помощью функции homeAsUpIndicator (), которая добавлена ​​в API-интерфейсе android API 18 и выше.

ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);

Если вы используете библиотеку поддержки

getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);

Я проверил вопрос. Вот шаги, которые я следую. Исходный код размещен на 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 +.

В той же папке, где находятся значения папки, создайте новую папку с именем -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, имя ключа которой – андроид: 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" > 

Изменение значка навигации отличается от 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> 

Я сделал ниже код onCreate() и работал со мной

 getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator); 

Если вы используете панель инструментов, вам не нужны эти решения. Вам нужно только изменить тему панели инструментов

 app:theme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 

Если вы используете dark.actionBar, ваша задняя кнопка будет белой, если вы используете легкую тему, она будет черной.

Я использовал back.png изображение в файле проекта menifest.xml. Он отлично работает в проекте.

 <activity android:name=".YourActivity" android:icon="@drawable/back" android:label="@string/app_name" > </activity> 

У меня была такая же проблема, как и кнопка «Значок» на главной кнопке «Action-bar» из-за пропущенного управления значком «Значок в каталоге».

Например, в каталоге ресурсов арабского языка Gradle вы помещаете значок в x-hdpi, а на английском языке Gradle – одно и то же имя значка, которое вы помещаете в другую папку плотности, например xx-hdpi, так что в APK будут два одинаковых имени значков в разных каталогах, поэтому ваше устройство Будет выбирать значок, зависящий от плотности, может быть RTL или LTR