1

如果我有ViewPager一定数量的页面,那么使用Loader框架为每个页面加载数据的最佳方式是什么?每个页面都包含一个具有自己的适配器实例的 ListView。

  1. 为每个页面使用单独的加载器;或者
  2. 使用单个加载器来检查哪些页面未加载并加载它们

问题是,用户可能希望快速浏览一堆页面,因此应该很容易“取消”加载出于性能原因不需要的页面。

另一方面,似乎有很多加载程序可能会产生开销。

编辑:Loader的 s 实际上需要有动态 ID 来表示它们正在加载的内容。我可能会在加载程序 ID 上使用掩码,然后在加载程序完成后调用destroyLoader().

4

1 回答 1

1

我会Loader为每个ListFragment. Loader如果您尝试管理来自父级的Activity片段(特别是如果这些片段由 a 持有),事情会很快变得混乱ViewPagerFragments 应该是为重用而设计的,不应该依赖特定Activity的来正常运行。Activity每个人都有Fragment自己的实例这一事实LoaderManager进一步证明了 Android 团队不希望开发人员让他们Activity的 s 为其附加的 s 加载数据Fragment

我认为不会有您可能期望的那样多的开销...... Loaders 应该在组件的生命周期中保留其数据,并且仅在底层内容发生更改时才重新查询。也使用 a 可能是个好主意FragmentStatePagerAdapter

于 2012-08-19T03:35:07.677 回答