J'essaie de changer la couleur des icônes d'onglets dans mon TabLayout, en fait je l'ai fait en utilisant addOnTabSelectedListener, mais cela ne fonctionne que lorsque je glisse entre les onglets. Donc, je veux que la couleur de l'icône du premier onglet soit la même que la couleur lorsque vous changez d'onglet.Comment puis-je appeler ViewPagerOnTabSelectedListener par programmation?
J'ai essayé avec viewPager.setCurrentItem(), mais cela ne fonctionne que lorsque l'index passé est différent de 0 (le premier onglet). Alors, comment appeler ViewPagerOnTabSelectedListener par programmation?
Ceci est mon code:
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
@Override
public void onTabSelected(TabLayout.Tab tab){
super.onTabReselected(tab);
int tabIconColor = ContextCompat.getColor(MainActivity.this,R.color.prehipertension);
tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN);
}
@Override
public void onTabUnselected(TabLayout.Tab tab){
super.onTabUnselected(tab);
int tabIconColor = ContextCompat.getColor(MainActivity.this,R.color.blancoTransparencia);
tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN);
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
int tabIconColor = ContextCompat.getColor(MainActivity.this,R.color.blanco);
tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN);
}
});
viewPager.setCurrentItem(0);
C'est l'application lors de son exécution pour le temps poing. Lorsque vous balayez vers le deuxième onglet (et revenez au premier onglet), la couleur de l'icône change correctement.