模式的使用动态加载器来加载未经ListFragments一个ViewPager ListView的页

2019-09-21 09:06发布

如果我有一个ViewPager有一定数量的页面,这将是载入数据使用每一页的最佳途径Loader的框架? 每个页面都包含有自己的适配器实例一个ListView。

  1. 使用的每一页单独装载机; 要么
  2. 使用一个单一的装载机,检查哪些页面没有加载并加载它们

问题是,这是可能的,用户可能想要快速通过一堆网页刷卡,因此它应该很容易“取消”,则不需要进行性能原因加载页面。

在另一方面,它好像有可能与有很多装载机的开销。

编辑:我的Loader 5事实上需要有动态的ID来表示他们正在加载内容。 我可能会去使用对装载机ID的面具,那么一旦加载完成后调用destroyLoader()

Answer 1:

我会用一个单独的Loader每个ListFragment 。 如果您尝试管理事情会变得混乱很快碎片Loader ■从父Activity (尤其是正在举行由那些片段ViewPager )。 Fragment s的应该被设计为重复使用,不应该依赖于特定的Activity才能正常工作。 每个事实Activity和每一个Fragment让自己LoaderManager实例进一步证明,Android团队不希望开发有自己的Activity ■装载数据,其连接的Fragment秒。

我不认为会有尽可能多的开销,你可能希望那里是... Loader S的关系保留在整个组件的生命周期,只有当下方的内容发生了变化重新查询他们的数据。 这可能是使用一个好主意FragmentStatePagerAdapter了。



文章来源: Pattern for using dynamic loaders to load ListView pages in a ViewPager without ListFragments?