如何在TabLayout中检测已选择的选项卡上的单击

Ren*_*ier 5 android android-tablayout

我的问题已经回答了好几次当它是一个TabActivitytabWidgets.但我无法找到关于相对新TabLayout观点的任何内容.

这很简单,比如facebook,我想点击已经选中的标签,让我的列表向上滚动直到它的开始.但我无法弄清楚我的听众放在哪里.

我尝试了TabLayout自己,mTabLayout.getChildAt()然后继续TabLayout.getTabAt().getCustomView().


编辑:更正:正如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();
            }
    }
});
Run Code Online (Sandbox Code Playgroud)

谢谢 !

Com*_*are 14

基于消费到10秒阅读文档...叫setOnTabSelectedListener()TabLayout.传递OnTabSelectedListener实现.你的事件回调方法onTabReselected().