分享

Fragment+loadmore 多次异步加载数据问题 | BeanU

 随身Book 2013-11-16

首先描述一下项目需求:新闻列表页面,一个viewpager里面包含多个Fragment新闻列表页面。Fragment页面可以下拉刷新,拉到底部可以loadmore更多数据。

异步加载数据之前使用的是AsyncTaskLoader,也许是因为对其理解不深的原因。当loadmore的时候,这个loader中保存的是最新的那部分数据。而不是整个列表的数据。所以当viewpager来回切换的时候,列表中只剩下最新的数据了。

现在使用的是AsyncTask。在loadmore事件中的代码:

1
new LoadNextNewsAsynctask().execute();

在Fragment中有个属性是

1
private List<NewsItem> data = new ArrayList<NewsItem>();

这个是用来保存这个页面所有数据的,只要Fragment存在,这个数据就会存在。

另一个需要解决的问题是在Fragment生命周期中有一个onActivityCreated(savedInstanceState)方法。在这个方法中需要写第一次启动的时候异步加载的数据。以后每次重建Fragment的时候并不需要再次启动。所以需要判断是不是第一次启动Fragment。

解决方法是:设置一个变量来判断是否第一次创建Fragment

本文固定链接: http:///fragment-loadmore.html | BeanU

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多