FragmentPagerAdapter无法正常工作

时间:2014-02-01 11:06:46

标签: android android-fragments fragmentpageradapter

我正在使用FragmentPagerAdapter在我的应用中的4个片段之间导航。但我面临一个奇怪的问题。当我调试我的应用程序时,我发现当启动MainActivity时,getItem中的索引值加载到0,因此加载第0个索引的Fargment,然后索引更改为1并加载第一个索引处的片段,因此获取片段的顺序有点不安。我不知道我是否错过了什么。但我真的无法弄清楚这个问题。这是我的FragmentPagerAdapter类:

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;
    }

}

这个课程表现不像我想要它的工作方式。 UI按照我想要的方式加载。我的意思是,假如我单击FragmentB()的Tab,将生成下一个Fragment的索引,即FragmentC(),但在我的设备上,我会看到FragmentB()我知道我无法正确解释这个问题但是如果有人可以提供帮助,我仍然会感激不尽,但请不要犹豫不决。在此先感谢:)

1 个答案:

答案 0 :(得分:0)

不确定我是否完全理解了FragmentStatePagerAdapter加载片段(从...开始向前和向后)的起始位置。此行为由适配器setOffscreenPageLimit(int number)控制。 Javadoc声明默认偏移量为1,这意味着在调试活动之后单击“Frag B”时将注意到“Frag C”加载...由于此偏移(当加载Frag A / Frag C时加载了Frag B)。