Ich habe ein Problem mit Tabs in meiner App. Wenn ich eine Registerkarte auswähle, möchte ich das Symbol und die Textfarbe ändern. Wenn ich auf eine andere Registerkarte wechsle, müssen das Symbol und die Textfarbe in die neutrale Farbe geändert werden.Ändern Sie die Textfarbe in ausgewählten Registerkarte
Ich habe versucht, dies zu tun, aber während das Symbol ändert, bleibt die Textfarbe gleich.
final TabLayout tabs = (TabLayout) findViewById(R.id.tabs);
tabs.addTab(tabs.newTab().setIcon(R.mipmap.destacados_act).setText("Destacados"));
tabs.setSelectedTabIndicatorColor(Color.rgb(255,170,0));
tabs.addTab(tabs.newTab().setIcon(R.mipmap.secciones).setText("Secciones"));
tabs.addTab(tabs.newTab().setIcon(R.mipmap.descargas).setText("Descargas"));
final ViewPager view_pager = (ViewPager) findViewById(R.id.pager);
final ViewPagerAdapterPrincipal adapter = new ViewPagerAdapterPrincipal(getSupportFragmentManager(), tabs.getTabCount());
view_pager.setAdapter(adapter);
view_pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
view_pager.setCurrentItem(tab.getPosition());
switch (tab.getPosition()) {
case 0:
tab.setIcon(R.mipmap.destacados_act);
tabs.setSelectedTabIndicatorColor(Color.rgb(255,170,0));
break;
case 1:
tab.setIcon(R.mipmap.secciones_act);
tabs.setSelectedTabIndicatorColor(Color.rgb(0,255,255));
break;
case 2:
tab.setIcon(R.mipmap.descargas_act);
tabs.setSelectedTabIndicatorColor(Color.rgb(170,255,0));
break;
}
}
public void onTabUnselected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case 0:
tab.setIcon(R.mipmap.destacados);
break;
case 1:
tab.setIcon(R.mipmap.secciones);
break;
case 2:
tab.setIcon(R.mipmap.descargas);
break;
}
}
public void onTabReselected(TabLayout.Tab tab) {
}
});
Hier ist mein Code für den Adapter
public class ViewPagerAdapterPrincipal extends FragmentStatePagerAdapter {
int numOfTabs;
public ViewPagerAdapterPrincipal(FragmentManager fm, int numOfTabs) {
super(fm);
this.numOfTabs = numOfTabs;
}
public Fragment getItem(int position) {
switch(position){
case 0 :
DestacadosPrincipal tab1 = new DestacadosPrincipal();
return tab1;
case 1 :
Secciones tab2 = new Secciones();
return tab2;
case 2 :
Descargas tab3 = new Descargas();
return tab3;
default:
return null;
}
}
public int getCount() {
return numOfTabs;
}
}
Das Problem kommt in OnTabUnselected
wenn ich
tab.setIcon();
Die Textfarbe ist in Ordnung löschen, aber offensichtlich das Symbol ändert sich nicht.
Wie kann ich den Stil programmgesteuert hinzufügen, weil ich den Text beim Erstellen der Registerkarten im Code erstellen – thproflord
Ich habe meine Antwort bearbeitet, um zu zeigen, wie Sie den Stil auf dem TextView festlegen können – CSmith