Как настроить кнопку "назад" на верхней панели

Я смог настроить фон панели действий, изображение логотипа и цвет текста, используя предложения из них:
Android: Как изменить значок ActionBar "Home", чтобы быть чем-то другим, чем значок приложения?
цвет текста ActionBar
ActionBar фоновое изображение

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

8 ответов


индикатор доступности "вверх" обеспечивается drawable, указанным в


таким образом, вы можете легко изменить его программно с помощью функции 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 или выше.

создайте новый файл под названием 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 или ниже, Sherlock Action Bar использует свой собственный ActionBar, который home as up индикатор называется простой "homeAsUpIndicator".

используйте новую тему в манифесте

заменить тему для применение / активность в файле AndroidManifest:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyCustomTheme" >

изменить значок навигации отличается для ActionBar и панели инструментов.

для переопределения ActionBar :

<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 в каталог ресурсов вы поставили иконку в X-hdpi и на английском Gradle в ресурсе же значок имя вы положили в различной плотностью папку как ХХ-ипчр ,так что в АПК будет два одинаковых значка именами в разных каталогах,так ваше устройство будет выбор плотности зависит от значок может быть RTL или Л