当它是带有TabActivitytabWidgets时,我的问题已经被回答了好几次。但是我找不到相对新的TabLayout View 的任何信息。

这很简单,就像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();
            }
    }
});

谢谢 !

最佳答案

基于花费约10秒钟阅读文档的时间,请致电 setOnTabSelectedListener() on the TabLayout 。传递OnTabSelectedListener实现。您的事件回调方法is onTabReselected()

关于android - 如何检测在TabLayout中已选择的选项卡上的单击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35895973/

10-12 03:50