片段页面适配器 - 只能调用Get Item一次
问题描述:
我在我的应用程序中设置了选项卡。我正在使用列表视图片段,每个片段都会调用下拉数据。片段页面适配器 - 只能调用Get Item一次
类似以下内容:
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;
}
}
...
}
这样一来,你的片段将只得到了实例化一次 - 当你创建你的适配器。
更好的是,将这些片段包装在List
中。这样你可以简化你的getItem(int position)
到return mFragments.get(position)
。
+0
完全合理,谢谢! – aherrick
你在使用ViewPager吗? – Blackbelt
是的,它默认存在于我的activity_main.xml – aherrick
中,总是保留一个片段offscreen。你可以用setOffscreenPageLimit – Blackbelt