На вопрос был вопрос TabActivity
с tabWidgets
. Но я не мог найти ничего о релятивистском новом представлении TabLayout
.Как обнаружить щелчок на уже выбранной вкладке в TabLayout
Это довольно просто, как и в facebook, я хочу нажать на уже выбранную вкладку, чтобы мой список прокручивался вверх до его начала. но я не могу понять, где поставить слушателя.
Я пробовал на TabLayout
сам, mTabLayout.getChildAt()
и на TabLayout.getTabAt().getCustomView()
.
EDIT: Исправление: Как CommonsWare упоминался в комментариях его ответа, я должен был переписать поведение «onTabSelected».
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();
}
}
});
Спасибо!
да .. может быть, поэтому нет StackOverflow об этом. Не работает для меня мысль, я не могу вызвать событие. Я отправлю свой код –
Это было связано с заказом моих кодовых строк. Я не знаю, почему, но это не работает, если '' 'setupWithViewPager''' вызывается после установки слушателя. –
@RenaudFavier: Один конкретный подкласс' OnTabSelectedListener' - 'ViewPagerOnTabSelectedListener'. Вызов 'setupWithViewPager()' вероятно, заменяет ваш собственный слушатель. Вам нужно будет решить, как лучше всего обрабатывать нужное событие, а также интегрировать «ViewPager». – CommonsWare