0

我想使用 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;
    }
}

先感谢您!

4

1 回答 1

0

不要在 getItem() 中这样做。只要适配器需要填充寻呼机,就会调用该方法,最终您将创建新的片段。在 Adapter 构造函数中执行此操作。我通常将它们保存在 ArrayList 中,然后使用 getItem() 中的 position 属性引用它们。如果您还需要使用 getItemPosition() 方法,这也很有帮助,因为您可以在 ArrayList 中查找具有匹配片段的位置。

于 2014-03-05T01:45:25.037 回答