Comment changer la couleur du texte de SlidingTabLayout?
J'ai fait une application qui utilise le ActionBarCompat
J'ai créé les onglets à l'aide de la SlidingTabLayout classe.
la classe est: est-ce
mais je ne peux pas changer la couleur des onglets...
mon viewpager fragment est ceci:
<swmovil.fyb.SlidingTabLayout
android:id="@+id/mTabs"
android:layout_width="match_parent"
android:layout_height="48dip" />
<android.support.v4.view.ViewPager
android:id="@+id/mPager"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:background="@color/white" />
l'application fonctionne très bien, mais je ne peux pas changer le couleur de texte des onglets...
J'ai fait la demande après avoir vu l'exemple suivant:
rudsonlive/Navigation-Tiroir-ViewPager-ActionBarCompat
Comment puis-je changer la couleur du texte des onglets de texte ?
merci !!!
InformationsquelleAutor seba123neo | 2014-08-01
Vous devez vous connecter pour publier un commentaire.
1) tout d'Abord créer de la couleur de dossier sous le res (/res/couleur)
2) créer un fichier xml selector.xml sous /res/couleur dossier
3) Puis dans la populateTabStrip() la méthode en SlidingTabLayout mettre cette
maintenant, vous avez un sélecteur et vous pouvez changer la couleur du texte sur n'importe quel événement que vous souhaitez
si cela ne fonctionne pas ajouter les lignes de code suivantes.
a) dans populateTabStrip() la méthode à la fin, ajouter cette
et b) de modifier la onPageSelected() la méthode pour ce
setTextColor()
méthode, vous pouvez appelertabTitleView.setBackground(getResources().getDrawable(R.drawable.selector_tab));
Ouvrir votre fichier
SlidingTabLayout.java
(celui par défaut de Google IO) et de trouver la fonctionpopulateTabStrip()
, puis après ce codeajouter la ligne suivante:
Remplacer
R.color.grey
avec votre couleur préféré.Vous devriez être en mesure de voir le TextView la classe est à l'aide.
Dans ma classe, le TextView était tabTitleView. Si vous utilisez la valeur par défaut de l'exemple fourni par Google, vous le trouverez sous populateTabStrip fonction.
copier le code de slidingtablayout et slidingtabstrip et le mettre dans un fichier java.puis faire un customtab_title.xml dans votre mise en page et un dossier de selector.xml fichier dans votre dossier drawable.
`
selector.xml
Et dans votre mainactivity ou où u r montrer vos onglets ajouter une ligne de code - tabs.setCustomTabView(R. layout.customtab_title, R. id.textView2);
ici onglets est slidingtablayout onglets;
à l'indicateur de changement de couleur ajoutez -
onglets.setSelectedIndicatorColors(getResources().getColor(R. de couleur.non pressée et non cuite));
cela peut être vous aider à
Malheureusement cette classe ne prend pas en charge la personnalisation de l'onglet couleur du texte sans modifier le code et utilise toujours la couleur du texte par défaut du thème. Vous aurez à le patch de la classe pour permettre de fixer les onglets de couleur de texte par le code ou par l'attribut style.
Une alternative est d'utiliser la PagerSlidingTabStrip bibliothèque.
En regardant le code de la SlidingTabLayout...Vous pouvez personnaliser l'onglet affichage, ce qui vous permet de contrôler le contenu de l'onglet et de définir un onglet personnalisé la couleur du texte. Jetez un oeil à slidingTabLayout.setCustomTabView(int layoutResId, int textViewId).
- Je utiliser Panayiotis Irakleous solution mais je pense qu'il est préférable d'éviter le bouclage partie dans onPageSelected procédure.
Les étapes sont les mêmes, vous devez ajouter un int membre de la classe (exemple:
mCurrentTabIndex
) pour économiser de l'onglet actuel de l'indice.En 3 étapes.un, vous devez ajouter
De sorte qu'il sera comme ceci:
Dernier, en 3 étapes.b, remplacer la boucle de la partie à cette question:
De sorte que le code sera comme ceci: