StateListDrawables et <selector>
sont parfaits pour définir différents drawables pour chaque état d'une vue, mais est-il un moyen de lier dans quel style de texte cette vue doit utiliser pour chacun de ces états? Par exemple, si vous aviez un bouton blanc avec du texte noir et que vous cliquiez dessus, la couleur du bouton devenait noire, vous souhaitiez que la couleur de votre texte devienne blanche. Je peux imaginer comment je ferais ceci avec du code, mais est-ce qu'il y a un moyen de le faire avec xml semblable au <selector>
utilisé pour drawables?Comment changer le style de texte basé sur l'état avec xml?
2
A
Répondre
6
Eh bien, il est en quelque sorte. Je ne crois pas qu'il y ait un moyen de dire, quelque chose comme state_focused utiliser Bold ou italics ou fontSize = 20. Mais il existe des moyens de changer la couleur. Donc, en utilisant le mécanicien de sélection, vous pouvez créer un ColorStateList
http://developer.android.com/reference/android/content/res/ColorStateList.html
Fondamentalement, vous faites la même chose que vous feriez une drawable liste d'état à l'aide d'un sélecteur, sauf que vous pouvez placer une couleur à l'intérieur des objets. Ensuite, vous enregistrez votre fichier XML dans le dossier de couleur.
/res/values/color/my_stateful_color.xml
et définir l'androïde: textColor à "couleur @/my_stateful_color"