如何使用Paging 3库更新单个项目

时间:2020-07-28 10:43:02

标签: android android-jetpack android-paging android-paging-library

我正在尝试找到一种使用Paging 3库中的PagingAdapter更新回收者视图中单个项目的方法。我发现PagingAdapter.refresh()方法只有一种方法。但是此方法强制从网络加载所有列表。有人知道如何在不从网络加载所有页面的情况下实现它吗?

1 个答案:

答案 0 :(得分:1)

当前,更新后备数据集的唯一方法是使列表无效并重新加载列表。对于正在使用缓存层的分层源(无论是在房间还是在内存等数据库中),这通常是一种便宜的选择,尽管正在进行中以支持更精细的更新(请参见https://issuetracker.google.com/160232968)。

就目前的分层源而言,您需要将网络调用移至RemoteMediator中,您可以在Pager的构造函数中进行注册,并将网络抓取内容缓存到任一数据库中像Room(可以为您生成PagingSource实现),或者自己编写一个内存中的内存。

codelabDAC docs对此非常有用,并且有代码示例可以指导您!