我想使用 ViewPager 从单个光标(最初来自 ContentProvider)中显示每页的多个项目。布局将显示为网格,并将包括每个项目的图像和文本。列表中会频繁添加和删除,需要在 UI 中反映出来,而不必重建数据结构(这可能会排除下面的一些选项)。
当前流程:
- 在主要活动中实例化光标。
- 创建我自己的从接受光标的 PagerAdapter 扩展的光标适配器类。光标用于通过 getCount() 确定 ViewPager 将拥有的页数(然后根据每页显示的项目数进行调整)。
- 在 Cursor Adapter getItem 方法中,它创建最终将包含列表子集的片段。
在这个阶段,我不确定哪种方法最好。我是否:
A. 将光标和索引传递给 Fragment 以显示下一页结果(例如,具有 setCursorIndex(Cursor, int) 方法。(即使在同一个 Activity 中,跨 Fragment 共享光标也会导致问题吗?)
B. 传入将获得结果的 ContentUris 字符串列表。(这是否会阻止更新列表而无需重建?)
C. 构建一个包含项目的参数包(一个包含图像和文本的字节数组的列表)。(由于使用图像,这似乎效率低下。)
D. 在从适配器接收到起始索引的每个片段中重新创建一个新的光标。(效率低下?)
非常感谢您的帮助。