问题标签 [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.
android - dataSource.inValidate() 不工作分页库
我正在使用具有 MVP 架构的分页库。数据源是在交互器中创建的,我试图使片段中的数据源无效,如下所示。
我的片段
我的PresenterImpl
MyInteractorImpl
但问题是,当数据源失效时,什么也没有发生。我需要重新获取滑动中的列表以刷新。任何帮助将不胜感激。
PS 我找不到任何将分页库与 MVP 结合使用的示例,因此我自己实现了它。如果我在这里做错了什么,请告诉我。
android - Android Paging Library - loadInitial() 和 loadAfter() 同时运行,无需滚动 recyclerview
例如 :
PagedList.Config.Builder().setInitialLoadSizeHint(25).setPageSize(25)。
应用程序同时加载初始数据和加载附加数据。我不知道如何解决它。
来自控制台的日志:
D/OkHttp: --> GET https://api.github.com/users/google/repos?page=0&per_page=25
D/OkHttp: --> GET https://api.github.com/users/google/repos?page=25&per_page=25
android - 如何使 PagedList 或 DataSource 中的数据子集无效?
在 Android分页库中,如何使 PagedList 或 DataSource 中的数据集子集无效?我写 PagedList 或 DataSource 是因为我不知道应该调用哪一个。
例如,我正在制作一个名为BufferOverflow的 QA 应用程序。
我有一个PageKeyedDataSource
通过网络加载数据。它支持通过 API 上的索引进行分页。在那个应用程序中,我有一个热门问题屏幕,其中包含“无限”的热门问题列表。当然,最重要的问题会定期更新。
如何:
- 更新第 1 页的数据集?
- 在第 10 页更新数据集?
我知道使用 PagedList 的好处是它会计算哪个项目是新的/旧的,使用DiffUtil
. 但是,我如何告诉它数据集上的某些key
或position
已更改?
我问的是不可能的吗?我应该自己实现自定义分页行为吗?
笔记:
- 我不想使所有数据无效。
adapter.getCurrentList().getDataSource().invalidate();
这将使数据源上的整个数据无效。虽然我只想使数据的某些部分无效。
- 我认为我正在寻找的 API 类似于 RecyclerView.Adapter 的
list.adapter.notifyItemChanged(0);
但当然,更新数据集不是适配器的责任。它在PagedList
、DataSource
或 Dao 类中。
android - 如何清除/删除页面列表适配器中的所有项目
我正在使用 android 分页库来显示搜索结果项目,有什么方法可以清除/删除所有加载的结果项目,在实时分页列表上调用 Invalidate 刷新列表不清除/删除项目
android - 分页库自定义数据源从不触发 loadBefore
我正在尝试使用 Paging Library 实现聊天应用程序,但我的 DataSource 从不触发 loadBefore 和 loadAfter,而是触发 loadInitial,我可以在 RecyclerView 中显示初始数据。我也在用房间。我搜索了一些教程,但没有一个能帮助我解决这个问题。
有谁能够帮我?
谢谢!
聊天数据源工厂.kt
聊天数据源.kt
聊天视图模型.kt
聊天片段.xml
android - 更新 recylerview 中的单个项目。我正在使用分页库并想更新单个项目/行
我正在使用提交列表将 pagedlist 值传递给适配器。当我更新单个项目时,请考虑我正在单击 recyclerview 中提要的点赞按钮。如何更新单个项目。
我正在按照这个例子进行分页实现
https://github.com/saquib3705/PagingLibrarySampleApp
它只是加载数据并更新recyclerview。我想为项目添加点赞按钮,并在用户喜欢如何实现它时更新列表。还要看看这个,这正是我正在寻找的 更新 PagingLibrary 中的列表项,不使用 Room(仅限网络)
android - Android Paging Library - 更新当前页面上的数据
我正在使用 Android Jetpack 的新 Paging 库来显示从 API 接收到的项目列表。我希望每隔几分钟刷新一次当前页面(比如第 3 页)上的数据,而无需使用 invalidate() 函数刷新整个列表,因为这会将 Recycler 视图带到其第一页。
我在这里看到的问题是分页库假设数据是不可变的。
https://developer.android.com/reference/android/arch/paging/DataSource#updating-paged-data
在谷歌上搜索,我可以看到解决方法是使用 Room 并根据 API 调用的数据库更新显示 UI。
有没有其他建议可以在不使用本地商店的情况下解决这个问题。
android - 如何在 ItemKeyedDataSource.LoadInitialParams 中使用 requestedInitialKey
我正在学习 android 分页库,一切正常。但是,每当我使 DataSource 无效时,只要将新项目添加到列表顶部,列表就会跳转到起始位置。我想将项目添加到列表顶部。但列表应保持在其当前滚动位置。我想我应该使用无效时不为空的 LoadInitialParams.requestedInitialKey 。但我不确定如何使用此键加载数据以避免列表跳转到起始位置。
我正在使用 firestore 数据库作为数据源。我发现提供给回调的 requestedInitialKey 实际上是当前滚动位置的 recyclerview 中的最后一个可见项。我已经尝试了以下方法来获取 requestInitialKey 周围的数据
其中 25 是我的页面大小。以上都没有解决问题。有人可以为我提供一个示例,以便列表将保持在其当前滚动位置仅更新内容而不跳转开始?
android - 如何向 Room 支持的 pagedList 添加新项目?
我在我的应用程序中使用网络 + 数据库进行分页。我有 2 个扩展相同类型的模型类。Room 数据库仅支持一种类型的模型。我想PagedList
根据一些业务规则在两者之间注入其他模型类。当我尝试通过使用Room 返回的mapByPage
函数来做到这一点时。DataSource.Factory
分页库正在抛出IllegalStateExeception
大小已更改的消息。我该如何实施这个案例?
android - 房间分页库总是返回 null LiveData?
我正在尝试在我的项目中使用分页库,但是当我尝试接收LiveData<PageList<Entity>> data
它时,它的值始终为空。我的实现如下所示:
道
视图模型
数据变量始终为空。