194 votes

Comment personnaliser le bouton back sur ActionBar

J'ai été en mesure de personnaliser la barre d'action de l'arrière-plan, l'image du logo et la couleur du texte en utilisant les suggestions de ceux-ci :

Android: Comment modifier l'ActionBar "Maison" Icône pour être autre chose que l'icône de l'application?

ActionBar la couleur du texte

ActionBar image d'arrière-plan

La dernière pièce que j'ai envie de personnaliser est le bouton retour de l'image. Il fait gris par défaut et je voudrais qu'il soit blanc. Soit de modifier la couleur, la spécification d'un drawable ou tout simplement ce qui les rend transparents (et en ajoutant le chevron pour mon logo personnalisé de l'image) serait de travailler. Comment dois-je faire à ce sujet? Merci à l'avance!

395voto

Jake Wharton Points 26095

L’indicateur d’affordance « haut » est fourni par un drawable spécifié dans le `` attribut du thème. Pour substituer avec votre propre version personnalisée, ce serait quelque chose comme ceci :

Si vous prenez en charge pre-3.0 avec votre application être sûr vous mettre cette version du thème personnalisé en `` ou similaire.

30voto

jiahao Points 952

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

Remplacer le style réel pour la pré-v11 appareils.

Copier et coller le code ci-dessous dans le fichier styles.xml des valeurs par défaut du dossier.

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

Notez que le parent ne peut être changé à n'importe quel Sherlock thème.

Remplacer le style réel pour la v11+ périphériques.

Sur le même dossier de dossier de valeurs, de créer un nouveau dossier appelé valeurs-v11. Android va chercher automatiquement le contenu de ce dossier pour les appareils avec l'API ou au-dessus.

Créer un nouveau fichier appelé styles.xml et de coller le code ci-dessous dans le fichier:

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

Noter que le nom du style doit être le même que le fichier dans les valeurs par défaut du dossier et au lieu de l'élément homeAsUpIndicator, il est appelé android:homeAsUpIndicator.

L'élément en question est parce que pour les appareils avec l'API 11 ou au-dessus, Sherlock Barre d'Action utiliser la valeur par défaut de la Barre d'Action qui est livré avec Android, le nom de la clé est android:homeAsUpIndicator. Mais pour les appareils avec l'API inférieur ou égal à 10, Sherlock Barre d'Action utilise son propre ActionBar, la maison jusqu'indicateur est appelé simple "homeAsUpIndicator".

Utiliser le nouveau thème dans le manifeste

Remplacer le thème de l'application/de l'activité dans le fichier AndroidManifest:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X