如何在没有服务器端分页的情况下在 android 中使用分页?

How to use Paging in android without server side Pagination?

我在过去 2 天遇到了这个问题,我无法确定我在这里做错了什么。

情况是:我使用 Retrofit(POST 方法调用)将 2 个参数传递给我的 API,第一个是 Token第二个是 CompanyId。我得到了大约 700 多个数据作为列表(JSON 响应)。所以我尝试实现 Android 架构的分页库以从该列表中接收 20 个项目。

然后当加载 20 个项目时,再加载 20 个项目,以便我比平时更快地收到回复。

我的假设:我认为我的 API 的服务器页面没有分页。

我的问题是: 是否可以在不对 API 进行分页的情况下从 700 多个项目的列表中接收 20 个项目。

每次调用 API 时,加载 700 多个项目都需要花费太多时间。

在这种情况下如何使用 Paging Library?

如果你需要我的任何代码块,你可以在下面的评论中请求。

任何帮助将不胜感激,谢谢。

Is it possible to receive 20 items from a list of 700+ items without the API being Paginated.

没有。如果 API 吐出那么多数据并且不允许您请求更少,那么您将无法影响此行为。

How do I use Paging Library in such situations?

您获取 700 多条记录并将其本地存储在设备上的数据库中,内存结构无关紧要。然后所有的显示都应该基于缓存的数据完成,w/o 进行 API 调用。这是非常好的场景,因为 Paging 库抽象了数据源。

https://developer.android.com/topic/libraries/architecture/paging/

如果您需要使用项目 N 中的数据来获取项目 N+1,请使用 ItemKeyedDataSource。例如,如果您正在为讨论应用程序获取线程评论,您可能需要传递最后一条评论的 ID 以获取下一条评论的内容。 https://developer.android.com/topic/libraries/architecture/paging/data