我想使用FragmentStatePagerAdapter或FragmentPagerAdapter来浏览3个不同的片段。每个单独的片段来自不同的类。我不太确定我应该在哪里创建新对象。应该在getItem函数中完成吗? 我看到的大多数例子都使用相同类型的片段。
private class SimplePagerAdapter extends FragmentPagerAdapter {
public SimplePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch( position ) {
case 0: return (Fragment) new myFragmentType1(); // ?
case 1: return (Fragment) new myFragmentType2(); // ?
default: return (Fragment) new myFragmentType3(); // ?
}
}
@Override
public int getCount() {
return 3;
}
}
提前谢谢!
答案 0 :(得分:0)
不要在getItem()中执行此操作。只要适配器需要填充寻呼机,您就会调用该方法,最终您将创建新的碎片。在Adapter构造函数中执行此操作。我通常将它们保存在ArrayList中,然后使用getItem()中的position属性引用它们。如果您还需要使用getItemPosition()方法,这也会有所帮助,因为您可以使用匹配的片段在ArrayList中查找位置。