wake-up-neo.net

So passen Sie die Zurück-Schaltfläche in ActionBar an

Ich konnte den Hintergrund, das Logo und die Textfarbe der Aktionsleiste mithilfe der folgenden Vorschläge anpassen:
Android: Wie kann ich das ActionBar-Symbol "Home" ändern, um etwas anderes als das App-Symbol zu sein?
ActionBar-Textfarbe
ActionBar-Hintergrundbild

Das letzte Stück, das ich anpassen möchte, ist das Bild der hinteren Schaltfläche. Es ist standardmäßig grau und ich möchte, dass es weiß ist. Entweder das Ändern der Farbe, das Festlegen eines Zeichenelements oder das einfache Durchführen des Zeichens (und Hinzufügen des Chevron zu meinem benutzerdefinierten Logo) würde funktionieren. Wie gehe ich das an?

185
Sunil Gowda

Der Indikator "Aufwärts" wird durch eine im Attribut homeAsUpIndicator des Designs angegebene Zeichnungsfunktion bereitgestellt. Um es mit Ihrer eigenen benutzerdefinierten Version zu überschreiben, würde es ungefähr so ​​aussehen:

<style name="Theme.MyFancyTheme" parent="Android:Theme.Holo">
    <item name="Android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
</style>

Wenn Sie mit Ihrer Anwendung Pre-3.0 unterstützen, stellen Sie sicher, dass Sie diese Version des benutzerdefinierten Designs in values-v11 oder ähnliches ablegen.

382
Jake Wharton

Sie können es also problemlos programmgesteuert ändern, indem Sie die Funktion homeAsUpIndicator () verwenden, die in Android API-Stufe 18 und höher hinzugefügt wurde.

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

Wenn Sie die Support-Bibliothek verwenden

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

86
hitman snipe

Ich habe die Frage geprüft. Hier sind die Schritte, die ich befolge. Der Quellcode wird auf GitHub gehostet: https://github.com/jiahaoliuliu/sherlockActionBarLab

Überschreibt den tatsächlichen Stil für die Geräte vor Version 11.

Kopieren Sie den folgenden Code, und fügen Sie ihn in die Datei styles.xml des Standardwertordners ein.

<resources>
    <style name="MyCustomTheme" parent="Theme.Sherlock.Light">
    <item name="homeAsUpIndicator">@drawable/ic_home_up</item>
    </style>
</resources>

Beachten Sie, dass das übergeordnete Element in ein Sherlock-Design geändert werden kann.

Überschreibt den tatsächlichen Stil für die v11 + -Geräte.

Erstellen Sie im gleichen Ordner, in dem sich die Ordnerwerte befinden, einen neuen Ordner mit dem Namen values-v11. Android sucht automatisch nach dem Inhalt dieses Ordners für Geräte mit API oder höher.

Erstellen Sie eine neue Datei namens styles.xml und fügen Sie den folgenden Code in die Datei ein:

<?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>

Beachten Sie, dass der Name des Stils der Datei im Ordner für Standardwerte entsprechen muss. Statt des Elements homeAsUpIndicator wird er als Android: homeAsUpIndicator bezeichnet.

Das Problem mit dem Element liegt darin, dass für Geräte mit API 11 oder höher die Sherlock-Aktionsleiste die Standard-Aktionsleiste verwendet, die mit Android geliefert wird. Der Schlüsselname lautet Android: homeAsUpIndicator. Für die Geräte mit API 10 oder niedriger verwendet Sherlock Action Bar jedoch eine eigene ActionBar, die als Home-Up-Indikator einfach als "homeAsUpIndicator" bezeichnet wird.

Verwenden Sie das neue Thema im Manifest

Ersetzen Sie das Design für die Anwendung/Aktivität in der AndroidManifest-Datei:

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

Das Ändern des Symbols für die Rückwärtsnavigation unterscheidet sich für ActionBar und Symbolleiste.

Überschreiben Sie das Attribut homeAsUpIndicator für ActionBar:

<style name="CustomThemeActionBar" parent="Android:Theme.Holo">
    <item name="homeAsUpIndicator">@drawable/ic_nav_back</item>
</style>

Um die Symbolleiste zu überschreiben, navigationIcon Attribut:

<style name="CustomThemeToolbar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="navigationIcon">@drawable/ic_nav_back</item>
</style>
24
duviteck

Ich habe den untenstehenden Code onCreate() gemacht und mit mir gearbeitet

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

Wenn Sie die Toolbar verwenden, benötigen Sie diese Lösungen nicht. Sie müssen nur das Design der Symbolleiste ändern

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

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

Wenn Sie eine dark.actionBar verwenden, wird Ihr Zurück-Button weiß sein, wenn Sie ein leichtes Actionbar-Design verwenden, wird es schwarz sein.

5
Oguz Ozcan

tray dies:

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

in onCreate();

2
Popal

Ich habe back.png image in der Projektmanifest.xml-Datei verwendet. es ist gut, im Projekt zu arbeiten.

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

Ich hatte die gleiche Ausgabe der Action-Bar-Home-Icon-Richtung, weil das Icon in Gradle Resource-Verzeichnissymbol nicht richtig verwaltet wurde

wie im arabischen Gradle-Ressourcenverzeichnis setzen Sie das Symbol in x-hdpi und in Englisch den gleichen Symbolnamen in einen anderen Dichteordner wie xx-hdpi, so dass in APK zwei gleiche Symbolnamen in verschiedenen Verzeichnissen stehen, also auf Ihrem Gerät Das dichtenabhängige Symbol kann RTL oder LTR sein 

0
user2508815