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

android - 使用PagedListAdapter时如何恢复屏幕上的recyclerview位置旋转

我正在使用来自 android 分页库的 PagedListAdapter 和 PageKeyedDataSource。我想在屏幕旋转后恢复 recyclerview 位置。我怎样才能做到这一点?LivePagedListBuilder 上的 setInitialLoadKey 不会影响 PageKeyedDataSource。

0 投票
0 回答
305 浏览

android - PagedList.BoundaryCallback 不再触发

我正在尝试使用房间和网络调用实现分页,如android 示例中所示

当我移动到列表底部时调用 onItemAtEndLoaded。在这种情况下,我通过从网络调用中获取结果将数据插入房间。

如果网络调用失败,一段时间后用户再次移动到列表底部,则不会触发边界回调。

这是错误还是预期行为?因为我不想实现无限重试。而是仅在用户滚动到底部时才拨打电话

0 投票
1 回答
3002 浏览

android - 将变量传递给分页库类

我正在使用 Android 分页库创建一个应用程序。我正在对它进行改造。改造代码在 ItemDataSource 中,我无法将变量传递给它。我有一些有意的变量。如何在 Retrofit Post 方法中设置我的变量。

项目数据源

主要活动

项目视图模型

}

顺便说一句,我正在关注这个https://www.simplifiedcoding.net/android-paging-library-tutorial/

0 投票
0 回答
355 浏览

android - PagedList 和 RecyclerView 交互的性能可以提高吗?

在我的 Android 应用程序中,我正在RecyclerView使用 Room 和 Paging 库中显示数据。

AsyncPagedListDiffer 我的实现与文档中的示例非常相似。

流程如下:

  1. 数据库中的数据发生了变化
  2. 相应Observer的将更改传递给Adapter

    /li>
  3. 计算AsyncPagedListDiffer差异并相应地更新列表

我的问题是第 3 步的性能下降。

即使我只在列表顶部插入一个项目,不同的人也必须检查所有项目(这非常低效,尤其是对于较大的数据集),而一个简单的notifyItemInserted(0)调用就足够了。

有没有办法解决这种行为?

例如,我可以告诉不同的是它不必检查所有项目吗?或者任何其他解决方案?

我真的很感激任何建议。

0 投票
1 回答
321 浏览

android - Android 分页工作不如预期

我尝试在我的项目中使用分页。不幸的是,它不像我预期的那样工作。我预计liveDataObserver将在callBack.onResult之后工作。但实际上,当loadInitial完成时,liveDataObserver 会立即观察。callBack稍后工作,并没有向观察者发布数据。

代码:首先我写了一个类扩展PageKeyedDataSource和接口SingleCreator

然后MyPagingDataSource的构造函数:

并覆盖 loadInitial:

那么datasourceFactory就是viewModel中的newInstanced:

片段

也许相关的事情:

  • 我在改造的 callAdapter 中写了subscribeOnobserveOn
  • viewModel 是一个 scopeProvider,因为我使用的是 autoDispose

我在 github 中尝试了一些示例。看来,pageLivedata 的 setValue 在 loadInitial 之后始终有效。在这种情况下,我该如何使用single

0 投票
2 回答
419 浏览

android - Infinite Scroll Recycleview的imageview在滚动时闪烁

我正在使用 Google 分页库显示来自服务器的图像。当我显示来自 Localhost 的图像时,它可以完美运行,但使用实时服务器时,它的图像会闪烁。我试图让 localhost 睡眠 2 秒以延迟响应,但 localhost 的图像没有闪烁。我的问题与image-flickering-while-scrolling-in-recyclerview问题相同。但我没有使用 asynctask 所以不能使用它的答案。

Recyclerview 适配器。

我正在使用这种方法。https://www.simplifiedcoding.net/android-paging-library-tutorial。当我使用与此方法相同的代码时。它工作正常。当我更改代码作为我的使用时,就会出现问题。PS-问题是加载数据时。加载数据后,它可以正常工作。

0 投票
1 回答
51 浏览

android - 告诉 RecycerView 以编程方式获取更多项目?

我将 RecyclerView 与PagedListAdapter从其他 API 中获取图像结合使用。当我滚动浏览它时,RecyclerView 会根据需要获取更多图像。我想通过 RecyclerView 模拟非常快速的滚动,但仍然会为每个项目调用 onBindViewHolder(),因为其中的逻辑很重要。理想情况下,我希望位于 RecyclerView 的第 50 位,并且能够执行类似的操作,mRecyclerView.scrollToPosition(300);但这不起作用,因为位置300还不存在。

有没有办法以编程方式滚动 recyclerView 以便它有效地做与我手动滚动一样的事情?

0 投票
0 回答
530 浏览

android - Android:当使用 PageKeyedDataSource 和 PagedList 时,如何在列表到达底部时添加更多数据?

我有一个带有 PagedListAdapter 的 RecyclerView,用于显示文本列表(例如 0、1、2、...、99),并且有一个按钮可以向数据库添加 20 个以上的项目,以便文本列表变为 (0,1,2,...,99,...,119)。

页面大小等于 20 时,列表可以在滚动列表时逐页加载 20 个项目(触发 datasource.loadAfter() 的地方)。

当列表没有滚动到底部并且我单击按钮时,添加了新项目,并向下滚动到底部,触发 datasource.loadAfter() ,显示新项目。

但是,当列表到达底部并单击按钮时,会将新项目添加到数据库中,但不会触发 datasource.loadAfter(),并且这些新项目不会显示在显示屏上。

当列表已经到达底部时,我该怎么做才能显示新项目?

由于我在其他问题中发布了代码,所以我只是在此处发布链接: 我使用的代码

0 投票
2 回答
1583 浏览

android - 为什么 onBindViewHolder 中的 getItem 会为空?

所以,我正在尝试关注分页库。在大多数示例中,它们具有以下内容:

为什么必须检查适配器中的项目是否为空?我不了解 PagedListAdapter 流的内部结构。谁能解释一下?

我的猜测是,一旦数据源更新,我们在适配器上有一个观察者,它会在某个时刻从 UI 线程“核对”适配器的内容,因此这个项目位置已经过时了?

0 投票
2 回答
3547 浏览

android - Android 分页库 LiveData> 在 api 调用结束前触发

已经两天了,我正在尝试学习如何将新的分页库与 Kotlin 语言一起使用(也是第一次)

所以我已经阅读了很多指南/教程和 Github repo ( https://github.com/STAR-ZERO/paging-retrofit-sample ) 来实现这个分页库,基本上我的问题是我的LiveData<PagedList<Discover>>内部ViewModel是在我的 api 调用之前触发的正在结束,我不知道为什么,我觉得电话callback.onResult(it?.results.orEmpty(), null, 2)没有做任何事情

我正在使用这个版本android.arch.paging:runtime:1.0.1 你可以在这里找到我的项目的 repo:https ://github.com/florian-do/TMDB

logcat :

这是我的代码:

Fragment.kt

MainViewModel.kt

DataSourceFactory.kt

SequentialDataSource.kt