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?
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.
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);
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" >
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>
Ich habe den untenstehenden Code onCreate()
gemacht und mit mir gearbeitet
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
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.
tray dies:
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close);
in onCreate()
;
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>
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