2

我正在使用 alpha5 中的分页库。我的问题是,我想使用 android 分页库加载的列表经常被更改。就像每分钟多次一样。当我向下滚动并加载第 1、2、3 页(atm 我为此使用 PositionalDataSource)时,可能会发生第一页在向下滚动时无效。

尝试想象第 1 页由于某种原因无效,并且用户在第 5 页(与第 1 页不在同一屏幕上),现在他再次向上滚动到第 1 页。分页库正在从缓存中获取数据,因此存在旧数据,这很糟糕。

有没有办法使页面无效?我希望当我向上滚动时,会有一个(可选的)调用(可能在 DataSource 本身中)询问来自缓存的数据是否仍然有效。

如果是这样,一切都很好,如果不是,请使用方法重新加载您的源(数据库,网络,等等)

4

1 回答 1

1

正如 pskink 所指出的,如果您的DataSource更改通知外界的唯一方法是调用DataSource#invalidate()方法。如果您不想重新加载未更改的页面的原因是因为您使用了一些慢速数据源(例如在网络上),您应该使用 Room 缓存数据。您将能够仅更新缓存中已更改的部分,您无需编写自己的数据源,并且 Room 提供的数据源将在缓存更改时自行失效,以便更新显示。

于 2019-02-15T10:58:39.640 回答