[英]FragmentStatePagerAdapter returns wrong positions in getItem
我正在使用FragmentStatePagerAdapter
。 getItem(int position)
返回錯誤的位置。 我有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保留當前顯示的片段及其鄰居的鏈接。 在第一個適配器上,創建Fragment0和Fragment1。 當您滑動到Fragment1時,他將創建Fragment2並為此調用getItem(2)。 滑動到Fragment2之后,適配器將銷毀Fragment0並創建Fragment3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.