Android FragmentStatePagerAdapter在getItem中返回错误的位置

Android FragmentStatePagerAdapter在getItem中返回错误的位置,android,android-fragments,fragmentmanager,Android,Android Fragments,Fragmentmanager,我用的是碎纸机。getItemint位置返回错误的位置。我有5个碎片。这是我更改碎片时的位置: Fragment0 -> Fragment1: position = 2 Fragment1 -> Fragment2: position = 3 Fragment2 -> Fragment3: position = 4 Fragment3 -> Fragment4: getItem is not called! Fragment4 -> Fragment3: posit

我用的是碎纸机。getItemint位置返回错误的位置。我有5个碎片。这是我更改碎片时的位置:

Fragment0 -> Fragment1: position = 2
Fragment1 -> Fragment2: position = 3
Fragment2 -> Fragment3: position = 4
Fragment3 -> Fragment4: getItem is not called!
Fragment4 -> Fragment3: position = 2
Fragment3 -> Fragment2: position = 1
Fragment2 -> Fragment1: position = 0
Fragment1 -> Fragment0: getItem is not called!
以下是我的适配器的代码:

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;

public class AppFragmentPageAdapter extends FragmentStatePagerAdapter {
    final int PAGE_COUNT = 5;
    private String tabTitles[] = new String[] { "اخبار", "حقیقت‌سنج", "ویدیوها", "زندگی‌نامه", "برنامه‌ها" };
    private Context context;

    public AppFragmentPageAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }

    @Override
    public int getCount() {
        return PAGE_COUNT;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case (0):
                return NewsFragment.newInstance(position);
            default:
                return VideosFragment.newInstance(position);
        }
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabTitles[position];
    }
}

这是正常的行为。默认情况下,FragmentStatePagerAdapter保留当前显示片段及其邻居的链接。首先,适配器创建碎片0和碎片1。当您滑动到Fragment1时,他将创建Fragment2并为此调用getItem2。刷到Fragment2后,适配器将销毁Fragment0并创建Fragment3。

这是正常行为。默认情况下,FragmentStatePagerAdapter保留当前显示片段及其邻居的链接。首先,适配器创建碎片0和碎片1。当您滑动到Fragment1时,他将创建Fragment2并为此调用getItem2。刷到Fragment2后,适配器将销毁Fragment0并创建Fragment3。

我不明白Fragment0->Fragment1:position=2的意思。这是您的logcat中的输出吗?如果是这样,请显示创建此输出的代码,并解释您期望的不同之处。显示的代码仅创建两个片段。这很好,只要你还可以说明你所问的整体概念。我不明白Fragment0->Fragment1:position=2是什么意思。这是您的logcat中的输出吗?如果是这样,请显示创建此输出的代码,并解释您期望的不同之处。显示的代码仅创建两个片段。这很好,只要您仍然可以说明您所询问的总体概念。