SuperAPI AI 工具集

pagination-patterns

通用与其它

查看项目

更新于 10-15 19:52

技能介绍

该资料整理了移动端分页的常见实现模式,主要面向 Android 与 iOS。

用途:为列表数据提供分页加载方案,覆盖网络请求、本地缓存与界面状态处理。

主要能力:

  • Android Paging 3:依赖 androidx.paging 的 paging-runtime-ktx、paging-compose、paging-testing(版本 3.3.5)。
  • PagingSource 实现:基于页码的加载,返回 LoadResult.Page,处理 prevKey/nextKey 与错误。
  • 游标分页 PagingSource:以 String 为 key,通常不支持向后加载。
  • Pager 配置:pageSize、prefetchDistance、enablePlaceholders、initialLoadSize、maxSize。
  • ViewModel 集成:使用 debounce、distinctUntilChanged、flatMapLatest 与 cachedIn。
  • Compose 中通过 collectAsLazyPagingItems 收集,处理 refresh、append、prepend 三种加载状态,支持重试与下拉刷新。
  • RemoteMediator:结合网络与数据库,实现离线分页,含 RemoteKey 实体与 DAO。
  • iOS 示例:基于 AsyncSequence 的分页 ViewModel 与 SwiftUI List 触发加载。
  • API 响应格式:游标式与偏移量式两种 JSON 结构,以及 Kotlin 序列化模型。

使用方式:按资料中的依赖、PagingSource、Pager、ViewModel、Compose 或 SwiftUI 代码组织实现;命令与代码保持原样。

适用场景:实时信息流优先游标分页;需要总数或跳页时用偏移量分页;需要离线支持时用 RemoteMediator。

限制:资料未提供具体平台版本要求、性能数据、收费信息或完整项目配置,部分细节需结合项目实际调整。