我在应用程序中设置了选项卡。我使用列表视图片段,每个片段执行一个调用来提取数据。
如下所示:
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;
}
}它运行得很好,但是我不希望每次访问选项卡时都会发生调用,这只是第一次。
做这件事的正确方法是什么?
发布于 2015-07-03 17:35:28
您可以在构造函数的某个地方实例化这些片段,然后在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)。
https://stackoverflow.com/questions/31211144
复制相似问题