我有问题。在我的应用程序中,我需要实现2个带有项目的recyclerviews。一个recyclerview逐页从后端加载项目(当用户查看所有项目时,新项目将在底部加载,加载指示器位于底部),另一个recyclerview则将用户添加到收藏夹的项目存储在Room数据库中。首先,recyclerview应该具有添加到收藏夹的按钮和显示加载进度的加载指示器(当用户向收藏夹应用添加项目时,需要下载一些图像以供Glide库使用)。使用网络示例进行分页将有助于在没有“添加至收藏夹”功能的情况下实现第一个recyclerview。链接:https://github.com/googlesamples/android-architecture-components/tree/master/PagingWithNetworkSample。我发现了可能的决定:将添加到项目的实体类字段表示项目状态(不在收藏夹中,下载,在收藏夹中添加)。它应该起作用,因为当Room数据库表中的数据将发生更改时,LivePagedList将始终调用观察者以更新recyclerview中的数据,并且DiffUtil将找到确切更改的项并在recyclerview中有效地对其进行更新。但是,如果我需要刷新数据,这将不起作用。当用户调用刷新时,我需要从数据库中删除所有项目,但是我应该保留收藏夹项目。因此,我将遇到这种情况:ID为1到20的项目已从数据库中删除,但ID为15的项目无法删除,因为用户已将其添加到收藏夹中。调用了Api,将ID为1到10的项目加载并保存到数据库中,现在在recyclerview中,我具有ID为1-10、15的项目。用户到达了recyclerview的末尾,边界回调将使用ID为15的项目调用后端以加载更多项目。 ID为11-14项目将被跳过。我需要一些建议来解决这个问题。如果您在回答之前就知道Google的分页库是如何工作的,我将不胜感激。