我刚刚将我的旧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);
onTabSelected()
中实现自定义行为,同时仍希望选项卡选择事件更改所选页面,则仍需要扩展TabLayout.ViewPagerOnTabSelectedListener
。 - ianhanniballakeTabLayout.OnTabSelectedListener
,并且在onTabSelected()
中执行了viewpager.setCurrentItem
,甚至不知道还有TabLayout.ViewPagerOnTabSelectedListener
存在。谢谢。 - Muhammad Babar