问题标签 [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 - 如何从 Android Pager 3 中的 RecyclerView 中删除丢弃的项目?
我正在使用Android Paging 3 library。在我的测试配置中,它有一个PagingConfig
withpageSize = 10
和maxSize = 40
. 当我向下滚动配置RecyclerView
时,一切都按预期工作 - 当我接近列表的下限时,会加载新的数据部分。当我们加载了太多数据项(超过配置的maxSize
)时,它开始被删除 - 这是预期的行为。但是当我开始向上滚动时,有空的视图持有者没有这些被丢弃项目的任何数据。这意味着适配器项目的数量在清理PagingData
. 如何null
从PagingDataAdapter
? 有没有这方面的API?如果应该自动完成,那么我对 Paging 3 的配置可能是错误的。在这种情况下,我将提供代码。
android - 使用 PagingDataAdapter 时如何恢复 recyclerview 滚动位置?
我有一个应用程序,它从 API 中获取158 个项目的列表,将其存储在 Room 中,并将其显示给用户。RoomDB 是事实的来源。
这是从数据库获取结果的 ViewModel 上的代码:
这是填充适配器的片段上的代码:
当前行为:
- 当我的第 60 项之后发生配置更改时,滚动位置丢失,我发现将我的pagingConfig上的pageSize从20增加到55,它解决了这个问题。
我已经尝试过的:
由于我是异步获取数据,因此我尝试使用本文中的这段代码来防止在适配器为空时加载数据。但它没有用
我期望达到的目标:
能够滚动到列表底部并在不丢失滚动位置的情况下进行配置更改“而无需在列表变大时增加我的pageSize ”
android - Android分页库3如何使用RemoteMediator先从房间加载而不是等待远程响应
我使用带有 Room 和 RemoteMediator 的 Android 分页库 3 实现了一个回收器视图适配器,但我的问题是,在初始加载期间加载列表需要一些时间。如果我从 Room 中删除了仅包含数据源的 RemoteMediator,则列表会立即加载。我想要的是首先从 Room 加载数据,然后只有在到达页面末尾时才从服务器获取并插入数据库。有谁知道该怎么做?
android - Android Paging 3 Library (3.0.0-alpha03) - 如何使用快速滚动条启用占位符快速加载 ClosestToCurrentPosition 项目
我正在使用分页 3 库(3.0.0-alpha03),我的本地缓存是 Room(160,000 行)。
当我使用滚动条并拖动到 RecyclerView(GridLayoutManager) 中的特定位置时,如何加快从本地缓存项加载“ClosestToCurrentPosition”?
假设我直接把滚动条拖到150000的位置,“Flow”贴图功能会从0到150000触发,速度极慢,效率不高
我的预期是这样的:当我使用滚动条并拖动到 150,000 时,加载行为将加载大约 154,500~150,500
有人可以帮我看看这个问题吗?或者 Dustin Lam 你能帮我吗?谢谢
编辑:我尝试将数据源包装为跳跃源,但发生了一些奇怪的事情。这是我的跳跃来源
当我将滚动条拖到列表的一半时params.key不断变化(可能是位置 80,000 ,我的数据库数据集行数量是 160,000 如上所述),最后是应用程序 ANR
这是日志
和分页配置
我错过了什么 ?
android - Jetpack Paging3 库对同一页面进行多次调用
我正在尝试使用房间数据库作为事实来源和 RemoteMediator 在 codelab之后实现 Jetpack paging 3 库。该应用程序查询谷歌图书 api,但由于某种原因,当我执行搜索时,它会多次调用同一页面。例如,当我在不滚动的情况下搜索火时,我在日志中得到了这个:
我的实现是这样的:
存储库:
远程调解器:
视图模型:
分段:
道:
服务:
如果有人指出我做错了什么并帮助解决这个问题,那就太好了。谢谢
android - 如何使用 Paging 3 库更新单个项目
我正在尝试使用 Paging 3 库中的 PagingAdapter 找到一种方法来更新回收器视图中的单个项目。我发现只有一种使用 PagingAdapter.refresh() 方法的方法。但是这种方法强制从网络加载所有列表。有人知道如何在不从网络加载所有页面的情况下实现它吗?
android - Android Paging Library V3 无法处理返回类型
我正在使用分页库 v3,尝试使用 RxRemoteMediator 时出现此错误
这是代码
android - 为不同的 API 资源创建另一个 PagingSource?
假设我有一个显示/animals
动物列表的 API 资源,我们称之为/animals/{species}
两个单独PagingSource
的对象?用于分页的Codelab有一个扩展PagingSource
名为的类GithubPagingSource
,但它仅用于一个端点。我想知道正确的方法是什么。
android - Paging3:在 Room DAO 中使用 PagingSource 作为返回类型时,“不确定如何将游标转换为此方法的返回类型”
我试图为新的 Paging 3 库模仿 Google 的 codelab,当我尝试让 Room DAO 方法返回时遇到以下错误PagingSource
:
这是我的UsersDao.kt
:
我的GithubUser.kt
样子是这样的:
在 Paging Codelab 的代码中,DAO 方法只返回一个PagingSource
在 Gradle 或其他任何东西中没有额外注释/魔术选项的方法。我还查看了来自 Github 的其他示例,例如使用 Paging 3 库的this和this,它们完全PagingSource
没有问题地返回。如果我错过了什么,谁能告诉我?
注意:在错误本身之前,我总是会收到关于 的警告ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1
,但这个警告本身在过去没有引起任何问题,但我在这里注明以防万一。
编辑:我使用以下 Room/Paging lib 版本: