问题标签 [android-paging]

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 投票
0 回答
162 浏览

android - Recycler View 将项目始终放在顶部

我有一个问题,每次系统从服务更新时,新项目都会放在回收商所在的项目之前。这意味着它将始终处于“结束”状态。我正在使用 PagedList.BoundaryCallback 库,我不知道如何解决这个问题。

这是我的 RepoBoundaryCalback

这是我的 PostDao,因为我认为物品的订单应该修复它

这是我的存储库

这是我的视图模型

这是我的片段

当有人遇到这个问题时,我们可以帮助我吗?

0 投票
1 回答
2758 浏览

android - 恢复活动时恢复 PagedListAdapter 位置

我一直在尝试PagedListAdapter但无法弄清楚如何正确恢复适配器位置。

最后一次尝试是lastKey从当前列表中保存。

但是当恢复我的适配器并传递lastKeyPagedListBuilder我上次看到的内容和显示的内容时,会有很大的不同。

如果我在恢复时位于第 #4 页的中间- 适配器将位于第 #4 页开头的位置。理想情况下,适配器应恢复到与上次看到的完全相同的位置。

保存 LayoutManager 状态的各种尝试

然后恢复它

惨败。欢迎任何建议:)

0 投票
1 回答
1280 浏览

android - 如何在Android的PagedList中将按钮单击事件传递给Activity?

我正在尝试采用PagedList我的应用程序。我想要的功能之一是能够处理列表项中的按钮单击事件。

我正在考虑利用ViewModel来监听点击事件,并取自示例https://medium.com/@star_zero/singleliveevent-livedata-with-multi-observers-384e17c60a16,我成功获得了点击事件。

所以我有,

正如上面的评论,当新项目添加到列表中时,我并不总是收到通知。我想我只从那里得到过loadInitial一次loadAfter。链接 ref 后,PagedList在不通知观察者的情况下处理更新列表本身。因此,我无法正确设置点击事件观察者。任何帮助,将不胜感激。被封了一个多星期。谢谢!

0 投票
2 回答
8714 浏览

android - 如何从 Android 分页组件中的 PagedListAdapter 中删除项目

我使用 Paging with Retrofit 从 REST API 加载通知数据列表。

当我按下通知项的删除按钮时,我调用删除 API 将其删除。PagedListAdapter删除 API 响应成功后删除它的正确方法是什么?PagedListPagedListAdapter不支持按索引或对象删除项目。

我试图打电话DataSource.validate(),但它从开始重新加载,而不是从当前页面。

0 投票
0 回答
333 浏览

android - android 架构组件 ViewModel & PageKeyedDataSource 问题

我想要什么:我想实现谷歌分页库。它加载了一些数据(比如说前 10 个)。当您向上滚动时,它会调用 API 并加载更多数据。

有什么问题:它正在加载所有数据而不是一些数据(比如说前 10 个)。为此,我使用了ViewModelPageKeyedDataSource

我尝试了什么:代码如下

InProgressFragment.java

SalesDashboardViewModel.java

SearchDataSource.java

申请人DataAdapter2.java

主要问题是 SearchDataSource 类的方法loadAfter永远不会被调用

任何帮助将不胜感激。

编辑:添加了 logcat 的屏幕截图。这可能会有所帮助。

在此处输入图像描述

0 投票
2 回答
318 浏览

android - 如何在android中更新实时数据值

我在我的应用程序中使用 liveData。我做了一个数据库查询,它返回一个LiveData<PagedList<Contact>>存储在数据库中的联系人。

我想在将其提供给观察者之前修改此实时数据。假设 LiveData 列表中有十个联系人,我想与另一个列表进行一些比较,并设置 LiveData 列表中的主要联系人。

完成此操作后,我想将其提供给观察者。

例如 -

遍历allContactsandlist并设置 中的哪些值allContacts与 中的值匹配list。无论哪个值allContacts匹配,它们的isPrimary属性都将设置为 true。

现在修改后allContacts,我想将其提交给观察者,例如:

我尝试了 LiveData.transform,但无法正确使用它。谁能建议我如何使用转换方法或其他方式来实现它。

0 投票
2 回答
2247 浏览

android - PagedList 获取新数据时收到通知

我遇到的问题与此处的问题相同: 未收到有关 PagedList 更新的通知

我所做的是为我的应用程序实现了分页库。我加载了一个数据列表,它可能非常大。Web 服务仅返回 20 个项目,并且使用密钥,您可以检索下一个 20 项,依此类推。现在这很好用,适配器/回收器视图显示前 20 个项目。一旦我向下滚动,就会加载新项目。问题是我需要知道何时加载新项目并需要对这些项目的引用。我需要将每个项目添加到列表顶部的地图视图中。如何通知我的分页列表中的更改?我尝试使用“addWeakCallback”,但我似乎不明白它是如何工作的。我希望每次加载数据时都会调用 ViewModel 上的观察者,但即使在加载数据之前也会触发我的观察者。观察者被一个空列表触发,我只是将该列表提交给我的 PagedListAdapter。有人可以澄清这一切吗?我可以对我的 pagedList 的观察者数据更改做些什么吗?

这是一些代码:

观察者

视图模型

数据源

在此先感谢您的帮助!

0 投票
0 回答
813 浏览

android - 如何在不知道列表总大小的情况下使用 PagedList 占位符

使用Android Architecture Components 分页库,我想在DataSource加载已在视图中的新项目时呈现占位符视图。

根据文档,这需要一个可数的数据集。我正在使用DataSource从无法提供项目总数的 API 获取项目的自定义项。但是,我仍然希望为当前正在加载的项目呈现占位符,即使当 API 返回的项目少于显示的占位符数量时这会导致闪烁。

有什么办法可以做到这一点?

0 投票
0 回答
792 浏览

android - 使用 Android 分页库处理错误

我正在尝试使用分页库制作一个简单的列表片段。文档说如果我想刷新整个列表,我应该使用invalidateDataSource 中的方法。当我调用这个方法的时候,DataSource会创建一个新的方法loadInitial调用,但是如果遇到错误loadInitial,比如我从网络加载远程数据,遇到网络错误是很常见的,那么我需要loadInitial再次调用当我需要重试时。但是在我打电话之后invalidate,我在列表中的所有旧数据都被清除了,因为分页库给了我一个新的空PagedList。即使我等到新列表不为空,旧列表也无法加载下一页,因为它的 bean 已经无效。

如果我想让我的旧列表在无效DataSource但遇到错误时保持工作,我该怎么办?

0 投票
1 回答
5876 浏览

android - Android 房间数据库数据没有被插入?

我正在将数据插入从网络接收的房间数据库中。它没有显示任何错误,应用程序也没有崩溃,但屏幕为空,表为空一切正常,但是当我使用 Stetho 调试工具并查看feed 表时,没有插入任何内容,任何人都可以弄清楚并帮助我。还要看看 PageListAdapter 和 LivePageListBuilder 是否正确实现?

1. Room DB 数据未插入 2.分页实现

这就是道法

存储库类:

适配器和 ViewHolder:

}