Comment faire pour modifier le nouveau TabLayout indicateur de la couleur et de la hauteur
Je jouais avec la nouvelle android.support.design.widget.TabLayout
, et a trouvé un problème, dans la définition de classe, il n'y a pas de méthodes pour modifier la couleur de la diode, et la hauteur par défaut.
De faire de la recherche, a trouvé que la valeur par défaut de l'indicateur de couleur est prise à partir de la AppTheme. Plus précisément ici:
<item name="colorAccent">#FF4081</item>
Maintenant, dans mon cas, si je change le colorAccent
, il aura une incidence sur tous les autres points de vue qui utilise cette valeur comme couleur d'arrière-plan, par exemple ProgressBar
Maintenant, est-il possible de modifier le indicatorColor à autre chose en plus de la colorAccent
?
Vous devez vous connecter pour publier un commentaire.
Avoir le problème que la nouvelle TabLayout utilise l'indicateur de couleur à partir de la valeur
colorAccent
, j'ai décidé de creuser dans laandroid.support.design.widget.TabLayout
mise en œuvre, en constatant qu'il n'existe pas de méthodes publiques pour personnaliser cette. Cependant, j'ai trouvé ce style de spécification de la TabLayout:Avoir ce style de spécification, maintenant, nous pouvons personnaliser le TabLayout comme ceci:
Et le problème est résolu, la fois sur l'onglet indicateur de couleur et la taille peuvent être modifiés à partir de leurs valeurs par défaut.
parent="@style/Base.Widget.Design.TabLayout"
Avec l'aide à la conception de la bibliothèque, vous pouvez maintenant changer dans le fichier xml:
Pour changer le couleur de la TabLayout indicateur:
Pour changer le hauteur de la TabLayout indicateur:
Depuis je ne peux pas poster un suivi android du développeur commentaire, voici une mise à jour de réponse pour quelqu'un d'autre qui a besoin de définir par programmation l'onglet sélectionné, l'indicateur de couleur:
De même, à la hauteur:
Ces méthodes ont été récemment ajoutés à révision 23.0.0 de la Bibliothèque de prise en charge, c'est pourquoi Soheil Setayeshi réponse utilise la réflexion.
Avec le desing bibliothèque de prise en charge v23 vous pouvez définir par programmation de la couleur et de la hauteur.
Simplement utiliser pour la hauteur:
Ici la officiel de la javadoc.
Suffit d'utiliser la couleur:
Ici la officiel de la javadoc.
Ici vous pouvez trouver les infos dans les Google Tracker.
À l'indicateur de changement de couleur et la hauteur par programmation, vous pouvez utiliser la réflexion. par exemple, pour l'indicateur de couleur utilisez le code ci-dessous:
et indicateur de changement de hauteur, utiliser "setSelectedIndicatorHeight" au lieu de "setSelectedIndicatorColor" puis l'appeler par votre hauteur désirée
Foto utilisation de l'indicateur ceci:
Vous pouvez changer cela en utilisant xml
Viens de mettre cette ligne dans votre code. Si vous modifiez la couleur, changer la couleur de la valeur entre parenthèses.
Android, il est facile.
Donc, que nous venons de dire
Qui va nous donner un bleu couleur normale et violet couleur sélectionnée.
Maintenant, nous avons défini la hauteur
Et pour la hauteur, nous disons