我的問題已被回答幾次,當它是TabActivity
與tabWidgets
。但我找不到有關相對新的TabLayout
視圖的任何內容。如何在TabLayout中檢測已經選擇的選項卡上的點擊
這很簡單,就像Facebook一樣,我想要點擊一個已經選好的標籤來讓我的列表滾動直到其開始。但我無法弄清楚把聽衆放在哪裏。
我試過TabLayout
本身,mTabLayout.getChildAt()
和TabLayout.getTabAt().getCustomView()
。
編輯:更正: 作爲CommonsWare mentionned在其答案的評論,我不得不重寫「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();
}
}
});
謝謝!
啊..也許這就是爲什麼有沒有關於它的計算器。對我來說不行,我無法觸發事件。我會發布我的代碼 –
這是由於我的代碼行的順序。我不知道爲什麼,但是如果在設置監聽器後調用setupWithViewPager'',則不起作用 –
@RenaudFavier:'OnTabSelectedListener'的一個具體子類是'ViewPagerOnTabSelectedListener'。調用'setupWithViewPager()'可能取代你自己的監聽器。您需要弄清楚如何最好地處理您想要的事件,並且還需要「ViewPager」集成。 – CommonsWare