Android 碎片页面适配器工作不正常
我使用FragmentPagerAdapter在我的应用程序中的4个片段之间导航。但我面临一个奇怪的问题。当我调试我的应用程序时,我发现当MainActivity启动时,getItem中的索引值加载到0,因此第0个索引处的片段被加载,此后索引变为1,第1个索引处的片段被加载,因此获取片段的顺序有点混乱。我不知道我是否错过了什么。但是我真的不能解决这个问题。这是我的FragmentPagerAdapter课程:Android 碎片页面适配器工作不正常,android,android-fragments,fragmentpageradapter,Android,Android Fragments,Fragmentpageradapter,我使用FragmentPagerAdapter在我的应用程序中的4个片段之间导航。但我面临一个奇怪的问题。当我调试我的应用程序时,我发现当MainActivity启动时,getItem中的索引值加载到0,因此第0个索引处的片段被加载,此后索引变为1,第1个索引处的片段被加载,因此获取片段的顺序有点混乱。我不知道我是否错过了什么。但是我真的不能解决这个问题。这是我的FragmentPagerAdapter课程: public class TabsPagerAdapter extends Fragm
public class TabsPagerAdapter extends FragmentStatePagerAdapter {
Context context;
public TabsPagerAdapter(FragmentManager fm, Context context) {
super(fm);
this.context = context;
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
return new FragmentA();
case 1:
return new FragmentB();
case 2:
return new FragmentC();
case 3:
return new FragmentD();
}
return null;
}
@Override
public int getCount() {
// get item count - equal to number of tabs
return 4;
}
}
这门课的表现不是我想要的。用户界面按照我想要的方式加载。我的意思是,假设我点击FragmentB()的标签,将生成下一个片段的索引,即FragmentC(),但在我的设备上,我将看到FragmentB(),我知道我无法正确解释这个问题,但如果有人能帮忙,我将不胜感激,但请不要投反对票。提前感谢:)我不确定我是否完全理解了,但是
FragmentStatePagerAdapter
从起始位置前后加载片段。此行为由适配器setOffscreenPageLimit(int number)
控制。Javadoc声明默认偏移量为1,这意味着当单击“Frag B”时,以下调试活动将注意到“Frag C”加载…由于此偏移量(Frag B是在Frag A/Frag C加载时加载的)。问题是在开始时?老实说,我没有清楚地理解这个问题。将您的代码发布在onTabSelected
@Override public void onTabSelected(选项卡选项卡,FragmentTransaction ft){viewPager.setCurrentItem(选项卡.getPosition());}上,我不确定我是否完全理解,但FragmentStatePagerAdapter
加载片段(从…)起始位置向前和向后。此行为由适配器setOffscreenPageLimit(int number)
控制。Javadoc声明默认偏移量为1,这意味着在调试活动之后单击“Frag B”时,将注意到由于此偏移量而加载的“Frag C”(Frag A/Frag C加载时加载了Frag B)。@OceanLife这就是原因。谢谢:)