Comment personnaliser le bouton de retour sur ActionBar

J’ai pu personnaliser l’arrière-plan de la barre d’action, l’image du logo et la couleur du texte en utilisant les suggestions suivantes:
Android: Comment changer l’icône ActionBar “Home” pour qu’elle soit différente de l’icône de l’application?
Couleur du texte ActionBar
Image d’arrière-plan ActionBar

La dernière pièce que je souhaite personnaliser est l’image du bouton arrière. C’est gris par défaut et je voudrais qu’il soit blanc. Changer la couleur, spécifier un dessin ou simplement le rendre transparent (et append le chevron à mon image de logo personnalisée) fonctionnerait. Comment puis-je m’y prendre?

L’indicateur “up” est fourni par un dessinable spécifié dans l’atsortingbut homeAsUpIndicator du thème. Pour le remplacer par votre propre version personnalisée, cela pourrait ressembler à ceci:

  

Si vous prenez en charge la version antérieure à la version 3.0 avec votre application, assurez-vous de mettre cette version du thème personnalisé dans le values-v11 ou similaire.

Vous pouvez donc le modifier facilement par programmation en utilisant la fonction homeAsUpIndicator () qui a ajouté au niveau 18 et supérieur de l’API Android.

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

Si vous utilisez la bibliothèque de support

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

J’ai vérifié la question. Voici les étapes que je suis. Le code source est hébergé sur GitHub: https://github.com/jiahaoliuliu/sherlockActionBarLab

Remplacez le style réel des périphériques pré-v11.

Copiez et collez le code suivant dans le fichier styles.xml du dossier de valeurs par défaut.

    

Notez que le parent pourrait être remplacé par n’importe quel thème Sherlock.

Remplacez le style réel des périphériques v11 +.

Sur le même dossier que les valeurs du dossier, créez un nouveau dossier appelé values-v11. Android recherchera automatiquement le contenu de ce dossier pour les appareils dotés d’une API ou supérieure.

Créez un nouveau fichier nommé styles.xml et collez le code suivant dans le fichier:

 < ?xml version="1.0" encoding="utf-8"?>    

Notez que le nom du style doit être identique à celui du dossier de valeurs par défaut et que, à la place de l’élément homeAsUpIndicator, il s’appelle android: homeAsUpIndicator.

La question de l’élément est que pour les périphériques avec API 11 ou supérieure, Sherlock Action Bar utilise la barre d’action par défaut fournie avec Android, dont le nom de clé est Android: homeAsUpIndicator. Mais pour les appareils dotés de l’API 10 ou inférieure, Sherlock Action Bar utilise son propre ActionBar, que l’indicateur d’accueil est appelé simple «homeAsUpIndicator».

Utiliser le nouveau thème dans le manifeste

Remplacez le thème de l’application / de l’activité dans le fichier AndroidManifest:

  

La modification de l’icône de navigation arrière est différente pour ActionBar et Toolbar.

Pour ActionBar, substituer l’atsortingbut homeAsUpIndicator :

  

Pour la barre d’outils, substituez l’atsortingbut navigationIcon :

  

J’ai fait le code ci-dessous onCreate() et travaillé avec moi

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

Si vous utilisez la barre d’outils, vous n’avez pas besoin de ces solutions. Il suffit de changer le thème de la barre d’outils

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

Si vous utilisez un dark.actionBar, votre bouton retour sera blanc si vous utilisez le thème de la barre d’action légère. Il sera noir.

J’ai utilisé l’image back.png dans le fichier menifest.xml du projet. ça marche bien dans le projet.

   

J’ai eu le même problème de direction d’icône de bouton Action-bar Home, en raison de la mauvaise gestion de l’icône dans l’icône du répertoire de ressources Gradle

comme dans le répertoire de ressources en arabe Gradle, vous mettez l’icône dans x-hdpi et en anglais le même nom d’icône que vous avez mis dans le dossier de densité différent xx-hdpi, de sorte que dans APK il y aura deux noms d’icône dans différents répertoires va choisir l’icône dépendant de la densité peut être RTL ou LTR