gpt4 book ai didi

android - onTabSelected 选定未调用

转载 作者:IT王子 更新时间:2023-10-28 23:56:07 27 4
gpt4 key购买 nike

我刚刚将旧的 ActionBar 迁移到新的 TabLayout(支持 Material Design)。

一切都很好,但我无法拦截选项卡选择onTabSelected 方法只在 TabLayout 第一次显示时被调用,但是当点击标签时,什么也没有发生!知道这段代码有什么问题吗?

 tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
mViewPager = (ViewPager) findViewById(R.id.pager);
if (mViewPager != null) {
setupViewPager();
}
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {

numTab = tab.getPosition();
prefs.edit().putInt("numTab", numTab).apply();

}

@Override
public void onTabUnselected(TabLayout.Tab tab) {

}

@Override
public void onTabReselected(TabLayout.Tab tab) {

}
});

tabLayout.setupWithViewPager(mViewPager);

最佳答案

当您调用 setupWithViewPager 时,这将在内部调用 setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(viewPager));,覆盖您的 OnTabSelectedListener

相反,您的监听器应该扩展 TabLayout.ViewPagerOnTabSelectedListener , 然后覆盖 onTabSelected() 并在 setupWithViewPager() 之后调用 setOnTabSelectedListener():

tabLayout.setupWithViewPager(mViewPager);
tabLayout.setOnTabSelectedListener(
new TabLayout.ViewPagerOnTabSelectedListener(mViewPager) {
@Override
public void onTabSelected(TabLayout.Tab tab) {
super.onTabSelected(tab);
numTab = tab.getPosition();
prefs.edit().putInt("numTab", numTab).apply();
}
});

关于android - onTabSelected 选定未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904265/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com