Android Jetpack架构组件之Paging

Paging

使用 Paging 库,您可以更轻松地在应用的 RecyclerView 中逐步妥善地加载数据。

Paging 库可帮助您一次加载和显示多个小的数据块。按需载入部分数据会减少网络带宽和系统资源的使用量。

Paging 库可帮助您加载和显示来自本地存储或网络中更大的数据集中的数据页面。此方法可让您的应用更高效地利用网络带宽和系统资源。Paging 库的组件旨在契合推荐的 Android 应用架构,流畅集成其他 Jetpack 组件,并提供一流的 Kotlin 支持。

使用 Paging 库的优势
Paging 库包含以下功能:

分页数据的内存中缓存。该功能可确保您的应用在处理分页数据时高效利用系统资源。
内置的请求重复信息删除功能,可确保您的应用高效利用网络带宽和系统资源。
可配置的 RecyclerView 适配器,会在用户滚动到已加载数据的末尾时自动请求数据。
对 Kotlin 协程和 Flow 以及 LiveData 和 RxJava 的一流支持。
内置对错误处理功能的支持,包括刷新和重试功能。

dependencies {
def paging_version = “3.1.1”
implementation “androidx.paging:paging-runtime:$paging_version”
}
Android Jetpack架构组件之Paging_第1张图片

本部分介绍了在每个层运行的 Paging 库组件以及它们如何协作加载和显示分页数据。

代码库层
代码库层中的主要 Paging 库组件是 PagingSource。每个 PagingSource 对象都定义了数据源,以及如何从该数据源检索数据。PagingSource 对象可以从任何单个数据源(包括网络来源和本地数据库)加载数据。

您可能使用的另一个 Paging 库组件是 RemoteMediator。RemoteMediator 对象会处理来自分层数据源(例如具有本地数据库缓存的网络数据源)的分页。

ViewModel 层
Pager 组件提供了一个公共 API,基于 PagingSource 对象和 PagingConfig 配置对象来构造在响应式流中公开的 PagingData 实例。

将 ViewModel 层连接到界面的组件是 PagingData。PagingData 对象是用于存放分页数据快照的容器。它会查询 PagingSource 对象并存储结果。

界面层
界面层中的主要 Paging 库组件是 PagingDataAdapter,它是一种处理分页数据的 RecyclerView 适配器。

此外,您也可以使用随附的 AsyncPagingDataDiffer 组件来构建自己的自定义适配器。

你可能感兴趣的:(Jetpack,android,jetpack,paging)