onTabSelected 选定未调用 [英] onTabSelected Selected Not Called
问题描述
我刚刚将旧的 ActionBar
迁移到新的 TabLayout
(支持 Material Design).
I have just migrated my old ActionBar
to new TabLayout
( Support Material Design ).
一切都很好,但我无法拦截选项卡选择onTabSelected
方法只在 TabLayout
第一次显示时被调用,但是当点击标签时,什么也没有发生!知道这段代码有什么问题吗?
Everything is great but I can't intercept tab selection
The method onTabSelected
is only called the first time TabLayout
is displayed, but when clicking tabs, nothing happens!
Any idea what's wrong with this code?
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
.
When you call setupWithViewPager
, this will internally call setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(viewPager));
, overriding your OnTabSelectedListener
.
相反,您的监听器应该扩展 TabLayout.ViewPagerOnTabSelectedListener,然后覆盖 onTabSelected()
并在 setupWithViewPager()
之后调用 setOnTabSelectedListener()
:
Instead, your listener should extend TabLayout.ViewPagerOnTabSelectedListener, then override onTabSelected()
and call setOnTabSelectedListener()
after setupWithViewPager()
:
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();
}
});
这篇关于onTabSelected 选定未调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!