问题标签 [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 投票
0 回答
112 浏览

android-paging - Android Paging 库——释放缓存数据

我阅读了一些关于Android Paging library的资源。虽然这个话题听起来不错,但我无法理解在DataSource+Network 场景中如何以及何时从 DataSource 释放资源。

如果我有一个非常大的列表(比如说数百 MB)并且我需要保持低存储空间怎么办?谁以及何时将清除底层数据源中未使用的行?

0 投票
1 回答
941 浏览

android - 使用分页库时 RecyclerView 列表刷新不正确

我在我的项目中使用分页库。

在 Activity 中,观察者观察 Room 库返回的数据,当 Room 的数据发生变化时,UI 会更新。

当我滚动到 RecyclerView 的末尾时,Paging 库开始将数据加载到 Room 中。

但是 RecyclerView 的列表刷新不正确并滚动到上一个位置。

我的代码有什么问题?

在此处输入图像描述 活动(观察者)。

适配器

扩散

PagingItemRepository

我的边界回调

PagingItemDao

0 投票
1 回答
345 浏览

android - 我可以使用 Livedata 为 PageKeyedDataSource 创建数据吗?

我有一个需要分页数据的功能。为此,我正在尝试使用 JetPack Paging 库。

我已经设置PageKeyDataSource并在示例中显示了看起来非常冗长的异步调用事件。特别是如果您必须多次调用才能创建列表。

相反,我已经有一个数据源可以进行多次调用,映射所有这些并返回一页项目的实时数据。

所以我在想类似下面的代码,但我想它需要 DataSource 中的观察者才能将列表传递给onResult

(getsomeCars 是 liveData)

有任何想法吗?

0 投票
0 回答
666 浏览

android - 分页库 Callback.OnResult 不返回值到 Livedata

我想实现jetpack分页库。

一切似乎都在工作,在从 api(使用 Retrofit2 和协程)获得响应后,android 分页回调正在调用他的 onResult 接口。

但是当接收到数据时,它并没有将它的值返回给主要活动中的 livedata。

解决办法是什么 ?

视图模型

ListDataPageSource

主要活动

分页配置

0 投票
1 回答
45 浏览

android - 从架构组件调试分页库

有什么方法可以帮助通过网络请求从架构组件调试分页库,好像解析JSON响应时出现任何错误,库失败并返回空列表,但它没有给出任何指示解析失败的类

0 投票
0 回答
66 浏览

android - 边界回调的问题,如何正确使用它?

我从两个来源学习功能分页库。我找到了使用边界回调的简单方法,但我很困惑。

哪个方法将在主线程中首先被调用:boundaryCallback 方法或 Rx 观察者方法?

因为我们有两个不同的工作线程,一个线程是 Rx 线程,它从网络加载数据,另一个线程是 Room 线程,它从数据库加载数据,当 rx 线程完成插入事务时。

0 投票
2 回答
2869 浏览

android - 分页库:跳转列表项+末尾总是相同的数据

我正在尝试使用分页库、MVVM 和 LiveData 实现一个无限列表。

在我的视图(在我的情况下是我的片段)中,我从 ViewModel 请求数据并观察变化:

在 ViewModel 中,我像这样获取我的数据:

在存储库中,我通过以下方式获取数据:

您可能已经注意到,我以 Google 的 Codelabs 为例,但遗憾的是我无法使其正常工作。

我的列表数据适配器:

我现在的问题是:数据在本地获取并保存,甚至在我的列表中正确显示。但是数据似乎是“循环”的,因此尽管数据库中有不同的对象(我与 Stetho 核对过,大约有几百个),但总是显示相同的数据。奇怪的是,列表中的最后一项也总是相同的,有时滚动时会重新加载项目。另一个问题是它会在某个时候停止重新加载(有时是 200 个,有时是 300 个数据项)。

我认为这可能是因为我的 ITEM_COMPARATOR 检查错误并返回了错误的布尔值,所以我将两者都设置为return true只是为了测试,但这并没有改变。

我也在考虑向 LivePagedListBuilder 添加一个配置,但这也没有改变。所以我有点卡住了。我还研究了一些使用 PageKeyedDataSource 等执行此操作的示例,但 Google 的示例在没有它的情况下工作,所以我想知道为什么我的示例不起作用。 https://codelabs.developers.google.com/codelabs/android-paging/index.html?index=..%2F..index#5


编辑:

谷歌的蓝图中确实有另一个例子。我将它添加到代码中。https://github.com/android/architecture-components-samples/blob/master/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/RedditActivity.kt

现在它正在正确加载,但是当加载发生时,列表中的某些项目仍然翻转。


编辑2:

我编辑了 BoundaryCallback,但仍然无法正常工作(现在提供了 Google 建议的 PagingRequestHelper)。


编辑3:

我只用远程部分试了一下,效果很好。Room/room 提供的数据源似乎存在问题。

0 投票
0 回答
75 浏览

android - Android分页库根本没有被解雇

所以我是分页库的新手,我遇到了问题。我正在使用教程尝试通过网络进行寻呼。问题是根本没有调用任何分页代码。

我尝试检查了许多解决方案,并且似乎都指向适配器。所以我做了以下事情: 1.我使用了 PagedListAdapter 2.我也调用getItem(position)了适配器。3. 有人说不设置可能是个问题setPageSize()PagedList.Config.Builder()我也设置了。

然而,对于我的生活来说,似乎没有任何效果。我可以使用一些帮助,这就是为什么我在这里上传了整个项目。

谢谢。

0 投票
1 回答
478 浏览

android - Android 分页库 - PositionalDataSource 问题

我可以从服务器获取记录总数,所以我PositionalDataSource用于网络调用。一切正常,但有一个问题:即使我不滚动,分页库也会继续从服务器获取所有数据。如何解决这个问题呢?使用:androidx.paging:paging-runtime-ktx:2.1.1

例子:

0 投票
0 回答
72 浏览

android - 为什么服务器响应后分页库不更新列表?

我正在尝试使用Kotlin CoroutinesRetrofit实现 Android jetpack 的分页库。调试后我发现观察不会在服务器响应成功时调用。

我是否缺少完整实施的东西?

这是我的PageKeyedDataSource实现

观察代码片