我有三个片段A、B和C。它们被设置为选项卡Tab A、Tab B、Tab C,并使用适配器显示,如下面的代码所示。我已经设置了我的页面适配器,使得中间的选项卡Tab B加载了第一个
adapter = new PagerAdapter(getSupportFragmentManager(),tabLayout.getTabCount());
if (viewPager != null) {
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(1);
}
所有这些工作都很好,但是当我第一次从选项卡B导航到选项卡C时,它完美地运行。然而,当我第一次从选项卡B导航到选项卡A时,它显示的是片段B而不是A。当我第二次导航时(从选项卡B到选项卡A),它现在按预期工作。如何解决这种初始延迟和选项卡不匹配的问题。
public class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
FragmentA A = new FragmentA();
return A;
case 1:
FragmentB B = new FragmentB();
return B;
case 2:
FragmentC C = new FragmentC();
return C;
default:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
}