美文网首页
JetPack 之Paging3

JetPack 之Paging3

作者: 薛定谔的猫QAQ | 来源:发表于2020-11-21 15:05 被阅读0次

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

相关文章

网友评论

      本文标题:JetPack 之Paging3

      本文链接:https://www.haomeiwen.com/subject/hvqeiktx.html