Ho appena migrato il mio vecchio ActionBar
a nuovo TabLayout
(Supporto materiale di progettazione).onTabSelezionato selezionato non chiamato
Tutto è grande, ma non posso intercettare selezione della scheda Il metodo onTabSelected
viene chiamato solo la prima volta che viene visualizzata TabLayout
, ma quando si fa clic schede, non succede nulla! Qualche idea di cosa non funziona con questo codice?
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
mViewPager = (ViewPager) findViewById(R.id.pager);
if (mViewPager != null) {
setupViewPager();
}
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
numTab = tab.getPosition();
prefs.edit().putInt("numTab", numTab).apply();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
tabLayout.setupWithViewPager(mViewPager);
questo è corretto! –
Sei azzeccato, questo ha risolto un bug simile per me. Tuttavia, non vi è alcun riferimento a questo fatto nella documentazione di TabLayout.OnTabSelectedListener. La tua risposta dovrebbe essere inserita nella documentazione ufficiale di Android. Il mio riferimento principale dovrebbe essere la documentazione, non lo stack overflow. Grazie ancora per la risposta. –
La risposta sopra è corretta! Ma non è necessario estendere l'ascoltatore. Basta chiamare il tabLayout.setupWithViewPager (mViewPager) prima che tabLayout.setOnTabSelectedListener risolva questo problema. –