我正在使用FragmentStatePageRadapter设置ViewPager内容。在适配器的getitem()方法中,我调用了一个片段。我想在每个视图寻呼机片段上动态显示来自服务器的产品图像和名称。我在片段的oncreateview()中调用异步任务。但也会调用相邻产品的异步任务。我想知道哪种方法是最好的?
我应该提前执行异步任务并设置视图寻呼机的适配器吗?如果是这样,我有1000个产品,它将需要大量的时间来设置适配器。
还是应该在每个页面加载后执行异步任务?但在这里,每当我来到页面时,它总是从服务器加载数据。我希望只在我第一次访问页面时加载数据,在下一次刷卡时,它应该简单地显示出来,而不是再次从服务器获取数据。
我也希望这是一个无限视图寻呼机适配器,这是怎么可能的?
非常感谢:)
最佳答案
…我希望只在我第一次访问页面时加载数据,在下一次刷卡时,它应该简单地显示出来,而不是再次从服务器获取数据。
将AsyncTask
调用从OnCreateView
移动到setUserVisibleHint
:当片段对用户可见时将执行:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// launch your AsyncTask here, if the task has not been executed yet
if(aTask.getStatus().equals(AsyncTask.Status.PENDING)) {
aTask.execute();
}
}
}
…我也希望这是一个无限视图寻呼机适配器,这是怎么可能的?
这已经得到了回答,即:
ViewPager as a circular queue / wrapping
how to create circular viewpager?