最近在做一個項目,使用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及對應的頁面。