Ho scoperto che quando imposto la visualizzazione personalizzata per ogni scheda in TabLayout, è necessario impostare il primo (indice 0) come selezionato.
TabLayout toolbarTabLayout = (TabLayout) findViewById(R.id.tabs);
toolbarTabLayout.setupWithViewPager(mViewPager);
toolbarTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
toolbarTabLayout.setTabMode(TabLayout.MODE_FIXED);
toolbarTabLayout.setTabTextColors(R.color.colorPrimary, R.color.white);
// Iterate over all tabs and set the custom view
for (int i = 0; i < toolbarTabLayout.getTabCount(); i++) {
TabLayout.Tab tab = toolbarTabLayout.getTabAt(i);
View v=mSectionsPagerAdapter.getTabView(i);
// no tabs are actually selected at start, this will make sure the
// selector for the colors comes in right when initialized
if (i==0)
v.setSelected(true);
tab.setCustomView(v);
}
Sembra forzare la prima scheda come selezionata quando viene applicata la vista personalizzata. Sembra davvero un trucco, speriamo che qualcun altro possa capire il vero problema e proporre una soluzione migliore.
fonte
2015-11-11 02:24:20
come u risolto ur problema perché la mia non è sempre risolto da CustomView – Erum