最近在做一个项目,使用5.0自带的TabLayout做导航栏,实现ViewPager+Fragment页面切换,后面发现从第一个tab直接切换到最后一个tab 的时候页面切换闪烁,网上查了一下,需要监听tabLayout的setOnTabSelectedListener,在重写的onTabSelected方法里面绑定viewPager的setCurrentItem(position,boolean);下面贴一下代码,希望能帮到有同样问题的朋友
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition(),false);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
这里添加一个技术点,如果想通过外部事件改变tablayout的状态,可以使用:tabLayout.getTabAt(tab).select();动态显示那个tab及对应的页面。