Meine Frage wurde mehrmals beantwortet, wenn es sich um eine TabActivity
mit tabWidgets
handelt. Aber ich konnte nichts über die relativ neue TabLayout
Ansicht finden.So erkennen Sie einen Klick auf eine bereits ausgewählte Registerkarte in TabLayout
Es ist ziemlich einfach, wie Facebook, ich möchte ein Tippen auf eine bereits ausgewählte Registerkarte, um meine Liste bis zum Anfang zu scrollen. aber ich kann nicht herausfinden, wohin ich meinen Zuhörer bringen soll.
Ich probierte die TabLayout
selbst, mTabLayout.getChildAt()
und TabLayout.getTabAt().getCustomView()
.
EDIT: Korrektur: Wie CommonsWare im Kommentar ihrer Antwort erwähnt, hatte ich das Verhalten von „onTabSelected“ neu zu schreiben.
mTabLayout = (TabLayout) findViewById(R.id.tabs);
mTabLayout.setupWithViewPager(mViewPager);
for (int i = 0; i < mTabLayout.getTabCount(); i++) {
mTabLayout.getTabAt(i).setIcon(tabIcons[i]);
}
mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
if (tab.getPosition() == PAGE_FEED) {
((PagerNewsFeedFragment) mViewPagerAdapter.getRegisteredFragment(PAGE_FEED)).scrollToTop();
}
}
});
Dank!
verwendet Standard-yeah .. vielleicht deshalb nicht Stackoverflow darüber gibt. Funktioniert bei mir nicht, dachte ich, ich kann das Event nicht auslösen. Ich poste meinen Code –
Es war wegen der Bestellung meiner Codezeilen. Ich weiß nicht warum, aber es funktioniert nicht, wenn '' 'setupWithViewPager''' nach dem Setzen des Listeners aufgerufen wird –
@RenaudFavier: Die eine konkrete Unterklasse von 'OnTabSelectedListener' ist' ViewPagerOnTabSelectedListener'. Der Aufruf von 'setupWithViewPager()' ersetzt wahrscheinlich Ihren eigenen Listener. Sie müssen herausfinden, wie Sie das gewünschte Ereignis am besten handhaben können und auch die 'ViewPager'-Integration haben. – CommonsWare