我在我的应用中设置了标签。我使用列表视图片段,每个片段都进行调用以下拉数据。
如下所示:
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;
}
}
它工作得很好,但是我不希望每次访问标签时都会发生呼叫,这只是第一次。
这样做的正确方法是什么?
答案 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)
。