问题标签 [android-paging-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

android - 对 DataSource 进行排序不会对屏幕上的可见列表进行排序

我有以下扩展功能 -

以及以下实现 -

我面临的问题是列表确实得到了排序,但列表的可见部分没有,这意味着我需要向下滚动才能使列表自我攻击,而不是向上滚动以查看更新的数据。

此外,它似乎总是忽略列表中的第一项并且不显示它

我错过了什么?另一件事 - 我如何摆脱 ListAdapter 的动画?

0 投票
3 回答
1016 浏览

android - 使用 GridLayoutManager 在分页库中设置跨度大小

GridLayoutManager当在分页库中LoadState时,将跨度大小设置为 1 。Loading我已经尝试过这个解决方案,但它不起作用。

对于复制问题:克隆这个官方 repo 并GridLayoutManager设置SearchRepositoriesActivity

我的代码在这里

电影列表片段

电影适配器

MoviesLoadStateAdapter

这里的目标ProgressBar应该显示在屏幕中央。

在此处输入图像描述

0 投票
5 回答
3831 浏览

android - 如何对 Paging 3(PagingSource) 进行单元测试?

谷歌最近宣布了新的 Paging 3 库、Kotlin-first 库、支持协程和 Flow 等。

我玩过他们提供的代码实验室,但似乎还没有任何测试支持,我还检查了文档。他们没有提到任何关于测试的内容,所以例如我想对这个 PagingSource 进行单元测试:

那么,我该如何测试,有人可以帮助我吗?

0 投票
2 回答
3491 浏览

android - 使用 Paging3 库时更改请求并获取新数据流

我在我的项目中使用了 Jetpack 的Paging 3库来处理数据分页。我有一个用例,当用户在搜索请求中更改某些内容(例如添加/删除一些过滤器)时,我必须调用 API 并根据新的搜索请求用新数据重新填充我的列表。但是当我创建新Pager实例并将其传递给我的PagingDataAdapter适配器时,它会抛出:

我的实现是这样的:


存储库

数据分页源

视图模型

分段

如果有人帮助解决这个问题,那就太好了。
谢谢

0 投票
0 回答
747 浏览

android - 从 androidx 使用 Paging 3 时出现“频道已关闭”消息

我试图在我的应用程序中将我的 Paging 2 实现转换为带有 Flow 的 Paging 3,但受到“通道已关闭”异常的困扰。该应用程序运行良好,但一段时间后崩溃(从几秒钟到几分钟)。它从网络加载数据,这可能很慢。使用 Room 作为内部数据库。模拟器上的崩溃比真实设备上的要频繁得多。

我对 Flow 不熟悉,我应该注意 Flow 系统中是否有任何已知的罪魁祸首?

你们中的任何其他人在使用 androidx 的 Paging 3 时遇到过类似的情况吗?

因此,如果这是一个已知问题(可能有明显的修复),请给我一个提示;与否,我可能会发布 Paging 3 代码部分(这需要一些时间)。

我的异常如下所示:

0 投票
1 回答
210 浏览

android - 仅在使用分页库单击按钮后才在 recyclerview 中加载项目

我正在使用分页库在 recyclerview 中加载数据。它会在视图创建后立即加载数据。我需要限制它并且需要在单击按钮后发出请求并加载数据。

0 投票
1 回答
34 浏览

android - 关于 Jetpack 寻呼的问题

我有一些关于 Jetpack Paging 的问题。第一个问题,服务器是否需要通过创建一个跟踪已发送到前端的项目数量的端点来支持前端的分页功能?那里的教程不多,现有的教程基本上是参考谷歌代码实验室。

在教程中,我看到他们正在发送表示页码的查询字符串“page”和表示每页项目数的“per_page”。我假设服务器有一个端点来使用这些查询字符串。

第二个问题,在教程中 Room DB 是与分页功能一起实现的。我是从数据库中获取数据还是可以从网络调用中获取数据并将其发送到 UI?我认为如果我先将数据存储在数据库中并在数据库中查询数据,它会变慢。对于这种情况,数据库将作为数据源,设备处于离线状态。

0 投票
2 回答
2110 浏览

android - 在使用 Paging library 3.0 时,我们如何将整个对象列表传递给 PagingDataAdapter?

我是分页库 3.0 的新手,我只需要对本地数据库中的数据进行分页。最初,我从数据库中获取 PagingSource<Int, MessageDisplayModel> 并将其用作流。

然后在 PagingData 通过 submitData() 方法传递给适配器之后。

现在,我关心的是如何从传递给适配器的 PagingData 中获取 MessageDisplayModel 的实际列表?

0 投票
1 回答
803 浏览

android - Android Paging 3 Library - 使用下一次加载更新第 1 页 VH

使用 Paging 3 Library,是否可以在第二页加载时更新第一页的 ViewHolder,而不是插入新项目?我显示的数据按日期分组(嵌套的 RecyclerView),第二次加载有时可能包含来自第一页 ViewHolder 的项目。

例子

第 1 页网络请求:

第二页网络请求:

我希望我的主要 RecyclerView 在这 2 个网络请求之后仅包含 2 个项目:

关于网络响应的说明

我的 API 以这种方式返回数据:

我试图将我的数据插入到具有日期和项目之间的一对多关系的 Room DB 中,但是从 2.3.0-alpha01 开始,Room 不支持生成一对多相关对象的 PagingSource。

感谢大家。

0 投票
1 回答
789 浏览

java - Android分页库索引超出范围异常

如果所有页面的项目都相同,我正在 android 中实现分页库一切正常。当最后一页项目的项目大小为 1 而不是 10 时,它会给出异常。我正在使用带有 androidx 的分页库 2.1.1。

例外

DataSource 类:这是我的数据源类,用于从 Web 服务获取数据

}

数据源工厂类

}

视图模型类

}

活动课

}