onTabSelected选择不调用 [英] onTabSelected Selected Not Called
问题描述
我刚刚迁移我的老动作条新TabLayout(支持材料设计)
一切都很好,但我不能拦截选项卡选择
该方法onTabSelected只叫第一次显示tabLayout,但点击选项卡时,没有任何反应!
任何想法有什么不对的code?
tabLayout =(TabLayout)findViewById(R.id.tabs);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
mViewPager =(ViewPager)findViewById(R.id.pager);
如果(mViewPager!= NULL){
setupViewPager();
}
tabLayout.setOnTabSelectedListener(新TabLayout.OnTabSelectedListener(){
@覆盖
公共无效onTabSelected(TabLayout.Tab标签){ numTab = tab.getPosition();
prefs.edit()putInt(numTab,numTab)。适用()。 } @覆盖
公共无效onTabUnselected(TabLayout.Tab标签){ } @覆盖
公共无效onTabReselected(TabLayout.Tab标签){ }
}); tabLayout.setupWithViewPager(mViewPager);
当你调用 setupWithViewPager
,这将在内部调用 setOnTabSelectedListener(新ViewPagerOnTabSelectedListener( viewPager));
,覆盖你的 OnTabSelectedListener
相反,你的听众应该扩展<一个href=\"https://developer.android.com/reference/android/support/design/widget/TabLayout.ViewPagerOnTabSelectedListener.html\">TabLayout.ViewPagerOnTabSelectedListener ,然后覆盖 onTabSelected()
并调用 setOnTabSelectedListener()
在 setupWithViewPager()
:
tabLayout.setupWithViewPager(mViewPager);
tabLayout.setOnTabSelectedListener(
新TabLayout.ViewPagerOnTabSelectedListener(viewPager){
@覆盖
公共无效onTabSelected(TabLayout.Tab标签){
super.onTabSelected(标签);
numTab = tab.getPosition();
prefs.edit()putInt(numTab,numTab)。适用()。 }
});
I have just migrated my old actionBar to new TabLayout ( Support Material Design ) 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);
When you call setupWithViewPager
, this will internally call setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(viewPager));
, overriding your OnTabSelectedListener
.
Instead, your listener should extend TabLayout.ViewPagerOnTabSelectedListener and then override onTabSelected()
and call setOnTabSelectedListener()
after setupWithViewPager()
:
tabLayout.setupWithViewPager(mViewPager);
tabLayout.setOnTabSelectedListener(
new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
@Override
public void onTabSelected(TabLayout.Tab tab) {
super.onTabSelected(tab);
numTab = tab.getPosition();
prefs.edit().putInt("numTab", numTab).apply();
}
});
这篇关于onTabSelected选择不调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!