Android 片段页面适配器-仅调用一次Get项
我在我的应用程序中设置了选项卡。我使用的是列表视图片段,每个片段都执行一个调用来下拉数据 如下所示:Android 片段页面适配器-仅调用一次Get项,android,android-fragments,Android,Android Fragments,我在我的应用程序中设置了选项卡。我使用的是列表视图片段,每个片段都执行一个调用来下拉数据 如下所示: public Fragment getItem(int position) { switch (position) { case 0: return FirstFragment.newInstance(); case 1: return FirstFr
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;
}
}
它工作得很好,但是我不希望每次访问该选项卡时都会打电话,只是第一次
正确的方法是什么?您可以始终在构造函数中的某个位置实例化这些片段,然后在
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;
}
}
...
}
这样,当您创建适配器时,您的片段将只实例化一次
更好的是,将这些片段包装在
列表中。这样你就可以简化你的getItem(int-position)
,只返回mFragments.get(position)
你使用的是ViewPager吗?是的,它在my activity_main.xml中默认情况下,屏幕外始终保留一个片段。您可以使用setOffscreenPagliemit更改此值,所以我只想将该数字更改为我拥有的选项卡总数?viewPager.setOffscreenPageLimit(3);如果您只想为每个片段调用一次,可以