Changer la couleur de la flèche du menu déroulant de Spinner en XML
Comme je l'ai écrit dans ma question, je veux changer la couleur de la flèche du menu déroulant (la valeur par défaut de la flèche, pas une flèche personnalisé ou quelque chose comme ça) d'une Spinner
en XML, mais le problème est que je ne pouvais pas trouver quelque chose à faire de référence à partir de la XML
.
Est-il possible? Si oui, comment puis-je changer la couleur?
Merci d'avance.
- jetez un oeil à la réponse here
- Mais il est personnalisé à la liste déroulante, pas par défaut la liste déroulante.
- 3 mois plus tard et je suis confronté au même problème. votre réponse m'a aidé à résoudre le problème. 1 vote pour vous, 1 pour Hussein 🙂
Vous devez vous connecter pour publier un commentaire.
Il y a trois façons d'y parvenir.
1. À l'aide de code:
Dans votre xml, assurez-vous que votre spinner a un id. Disons que nous avons un spinner avec l'id "spinner".
Dans votre code, ajoutez la ligne suivante dans votre onCreate():
où le rouge est la couleur de colors.xml dans les valeurs de dossier.
2. Via xml:
Pour l'API de 21 ans et+:
ou si vous utilisez la bibliothèque de prise en charge, vous pouvez utiliser:
3. Grâce à un drawable:
Vous pouvez utiliser cet outil en ligne: http://android-holo-colors.com
Cela va générer personnalisé un drawable pour toutes les vues que vous voulez avec votre couleur préféré. Assurez-vous de sélectionner spinner, puis de télécharger les ressources.
colors.xml
fichier. Ou je dois le créer? Aussi, je tiens à souligner que, dans ma question, quand je dis XML, je veux dire si il ya une option commeandroid:colorDropDownArrow
ou quelque chose comme ça pour définir la valeur de la arrrow directement dans le XML. Merci!Je suis surpris que personne ne l'a relevé, mais vous pouvez simplement sous-classe
Widget.AppCompat.Spinner
et changementbackgroundTint
et de l'appliquer à la
Spinner
android:background
vous n'utilisez plus Android arrière-plan dessiné, mais au lieu de la définition d'une nouvelle couleur drawable, c'est pourquoi vous ne voyez pas la flècheutilisation backgroundTint attribut
si min_SDK < 21(Lollipop), vous devez utiliser AppCompatSpinner
Si (API 21+) {
vous pouvez utiliser directement
android:backgroundTint="@color/color"
, à l'intérieur de votre Spinner:}
d'autre {
créer votre propre style:
puis en Spinner:
}
Remarque: vous pouvez utiliser le style de la méthode dans toutes les API.
essayez ceci:
Utilisation cette dépendance pour créer un cadre très agréable et facile spinner et
utiliser "app:arrowTint="@couleur/vert" pour changer la flèche de couleur