使用android分页库

时间:2018-01-30 11:00:57

标签: android android-architecture-components android-paging

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

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

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

如果是这种情况,一切都很好,如果没有,请使用方法重新加载你的源(数据库,网络,等等)

1 个答案:

答案 0 :(得分:1)

如pskink所指出的,如果您的DataSource发生更改,则通知外部世界的唯一方法是调用DataSource#invalidate()方法。如果您不想重新加载未更改的页面的原因是由于使用了一些缓慢的数据源(例如在网络上),则应使用Room缓存数据。您将只能更新缓存中已更改的部分,而无需编写自己的DataSource,并且Room所提供的那部分将在缓存更改后自动失效,以便可以更新显示。