JetPack 之Paging3

Paging3

Paging3是Google推出分页加载的类库,用于对多条目多数据时的分页加载,多条目可以理解为RecyclerView或ListView中的ItemView,多数据,可以理解为List<T>中的T,也就是对应的实体bean,目前Paging3处于Alpha版本中,当中可能出现各种不确定的Bug,稳定版可用Paging2,但用法可能和Paging3有所不同

PagingDataSource

PagingDataSource,是Paging3中的重要的一环,主要承担的就是数据的获取,可以理解为,我们的网络请求或者读取本地数据库的数据,我们需要在这里请求数据并处理数据

Pager

Pager,也是整个Paging3中比较重要的,他用于装载PagingDataSource,并加载配置,比如可以配置预加载的距离等等,我们在项目中,实际也是用Pager关联到PagingDataSource,然后使用Pager发起一个Kotlin的协程,然后配置PagingDataAdapter使用

PagingDataAdapter

我们可以理解为RecycleView.Adapter,实际上它也是实现的RecyclerView.Adapter。这个方法中有submit()方法非常重要,这个方法是开启数据加载的最后一环,所以必须实现。其中这个adapter中还包含refresh()和retry()的方法,顾名思义刷新和重试,还有就是adapter.loadStateFlow的监听,用于监听数据加载的状态

结果

将这3者串联起来,你就会得到一个自动加载数据的RecyclerView,
当然这是理想状态,如果中间有断网或者数据加载失败的情况,可以通过adapter.loadStateFlow监听,调用refresh() 或者 retry()的方法

官方文档(无需梯子)

Jetpack Paging3



作者:薛定谔的猫QAQ
链接:https://www.jianshu.com/p/e651e9d43ecc
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值