Comment utiliser les sélecteurs pour changer les icônes avec le nouveau TabLayout
Je suis en utilisant le nouveau support TabLayout à partir d'Android. Le truc, c'est que je voulais utiliser les sélecteurs de changer l'icône lorsqu'un onglet est sélectionné.
J'ai été regarder dans le code source et il me semble que l'on ne change pas l'état de la vue (et pour cette raison je ne peux pas utiliser le sélecteur).
Personne ne sait de certains solution de contournement?
Merci!
source d'informationauteur Fábio Carballo
Vous devez vous connecter pour publier un commentaire.
Il est possible de définir customView comme un onglet avec setCustomView(View view) méthode. Vous pouvez donc créer un textview et de définir un sélecteur et de définir cette vue de l'onglet.
Espère que cela vous aide!
Assumer votre my_selector.xml est,
ensuite, vous pouvez appeler setIcon directement,
Vérifié avec com.android.support:design:22.2.0'.
J'ai constaté que lorsque j'ai d'abord définir l'affichage personnalisé pour chaque onglet dans la TabLayout j'ai besoin de régler le premier (index 0).
Cela semble vigueur le premier onglet sélectionné lors de l'affichage personnalisé est appliqué. Il se sent vraiment comme un hack, j'espère que quelqu'un d'autre le fera comprendre le réel problème et de proposer une meilleure correction.
Si vous avez tout fait correctement (et je crois que cela), alors vous êtes arrivé au même point que moi. C'est peut-être un petit bug dans le nouveau android appcompat bibliothèque.
j'ai trouvé une solution de contournement (on appelle Gambiarra dans une bonne Portugues) afin de résoudre ce problème. vous devez appeler la méthode select() à partir de l'Onglet de la classe comme ceci:
MAIS c'est très important: la variable x doit être différent de celui actuellement sélectionné, l'onglet index.
C'est ce qui a fonctionné pour moi:
En supposant que vous avez votre sélecteurs situé dans le drawable dossier res (comme Xingang Huang a montré ci-dessus).
Dans votre MainActivity (où vous configurez votre TabLayout) - vous d'inclure votre tableau de l'icône de la sélecteurs et puis boucle comme ceci:
fonctionne aussi bien, mais dans mon cas les icônes avait l'air vraiment petit, donc j'ai dû utiliser la solution avec l'ImageView pour remplir l'onglet affichage.
Heureux de codage 😉