片段页面适配器 - 仅调用一次获取项目

时间:2015-07-03 16:36:16

标签: android android-fragments

我在我的应用中设置了标签。我使用列表视图片段,每个片段都进行调用以下拉数据。

如下所示:

   public Fragment getItem(int position) {
            switch (position) {
            case 0: 
                return FirstFragment.newInstance();
            case 1: 
                return FirstFragment.newInstance();
            case 2: 
                return SecondFragment.newInstance();
            default:
                return null;
            }
        }

它工作得很好,但是我不希望每次访问标签时都会发生呼叫,这只是第一次。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您始终可以在构造函数中的某处实例化这些片段,然后在getView(...)中传递对它的引用。

以下是插图:

public class YourPagerAdapter extends FragmentPagerAdapter {

    YourFragment fragment1, fragment2, fragment3;

    public YourPagerAdapter() {
        fragment1 = YourFragment.newInstance();
        fragment2 = YourFragment.newInstance();
        fragment3 = YourFragment.newInstance();
        ...
    }

    public Fragment getItem(int position) {
        switch (position) {
        case 0: 
            return fragment1;
        case 1: 
            return fragment2;
        case 2: 
            return fragment3;
        default:
            return null;
        }
    }

    ...

}

这样,当您创建适配器时,您的片段只会被实例化一次。

更好的是,将这些片段包装在List中。这样您就可以将getItem(int position)简化为return mFragments.get(position)