android-paging相关内容

恢复分页库3中的卷轴位置

我正在使用带有RemoteMediator的Pages Library 3,该RemoteMediator包括从网络和本地Room数据库加载数据。每次我滚动到RecillerView中的某个位置,导航到另一个片段,然后导航回包含列表的片段时,滚动状态不会保留,RecclerView从第一个项目开始显示列表,而不是从我导航离开之前的位置。 我曾尝试使用StateRestorationPolic ..

分页库过滤/搜索

我正在使用 Android 分页库,如下所述:https://developer.android.com/topic/libraries/architecture/paging.html 但我也有一个 EditText 用于按名称搜索用户. 如何过滤 Paging 库中的结果以仅显示匹配的用户? 解决方案 您可以使用 MediatorLiveData 解决此问题. 特别是 ..
发布时间:2021-12-20 14:09:12 移动开发

Android Paging Library 如何知道加载更多数据?

我对开发 Android 应用还很陌生,我正在努力以“正确的方式"完成所有事情.所以现在,我正在我的项目中实现新的 Android Paging Library,我需要从网络服务器加载文章列表. 我有一个 ArticlesRepository 类,它返回一个 ArticleList 类,其中包含我想在 RecyclerView 中显示的 ArticleListItem 的实例.文章列表已在服 ..

使用 Room 更新 PagingLibrary 中的列表项(仅限网络)

我正在使用分页库从使用ItemKeyedDataSource的网络加载数据.获取用户可以编辑的项目后,此更新在内存缓存中完成(不使用 Room 之类的数据库). 现在由于 PagedList 本身无法更新(讨论 here) 我必须重新创建 PagedList 并将其传递给 PagedListAdapter. 更新本身没问题,但是在用新的PagedList更新recyclerView后, ..

如何使用 Paging 3 库更新单个项目

我正在尝试使用 Paging 3 库中的 PagingAdapter 找到一种方法来更新回收器视图中的单个项目.我只找到了一种使用 PagingAdapter.refresh() 方法的方法.但是这种方法强制从网络加载所有列表.有人知道如何在不从网络加载所有页面的情况下实现它吗? 解决方案 目前,更新后备数据集的唯一方法是使列表无效并重新加载.对于使用缓存层(在数据库中,例如房间或内存中) ..

Android 分页 3:如何更改 RemoteMediator 的参数

我正在为 Jetpack 的 Paging 3 库苦苦挣扎. 我设置 针对网络 API 调用进行改造 存储检索数据的空间 公开 Pager.flow 的存储库(请参阅下面的代码) 在房间数据库中缓存网络结果的 RemoteMediator PagingSource 由 Room 创建. 我知道 RemoteMediator 的职责是从网络中获取项目并将它们保存到 Ro ..

未显示分页 3 初始加载

我正在使用分页 3,除了初始加载状态外,一切正常.我正在添加 withLoadStateFooter 但它在第一次调用时从不显示加载状态 这是我的实现 负载状态适配器 class LoadStateAdapter (私有 val 重试:() ->单元): LoadStateAdapter() {覆盖乐趣 onBindViewHolder(holder: LoadStateViewHo ..
发布时间:2021-06-13 19:57:58 移动开发

Android分页库不会停止在recyclerview中加载项目

我正在使用Android分页库...它以一种怪异的方式工作-项目无限地加载,即使没有更多数据要加载也没有停止. 例如,我要加载2个项目,而不是仅加载2个项目并停止加载,而是不断重复加载这2个项目...这是我所面对的gif文件. PAGE_SIZE "的值更改为" 1 "时,似乎可行,但分页的整个目的却失败了,因为所有项目都被取消了一次加载.(我测试了更多项目) 公共类CommentD ..
发布时间:2021-04-04 21:01:39 Java开发

Paging3:“不确定如何将Cursor转换为该方法的返回类型"在Room DAO中使用PagingSource作为返回类型时

我试图为新的Paging 3库模仿Google的代码实验室,当我尝试让Room DAO方法返回 PagingSource 时,我遇到了以下错误: D:\ Programming \ Android \ something \ app \ build \ tmp \ kapt3 \ stubs \ debug \ com \ someapp \ something \ data \ db \ U ..

但是,实际上,AndroidX Paging Library如何知道何时加载更多页面?

存在一个这个问题,该问题措辞完全相同. 但是张贴者的问题得到了解决,而没有实际回答发布的问题-因为问题是由于与分页库如何加载更多页面无关. 我想知道用于消耗Paging数据源的订阅/收集(Rx/Flow)机制是否是Paging数据源如何知道何时加载更多页面的方式.因此,也许订阅/收集会拉页面.(但即使如此,初始加载后的页面如何触发?)并且数据源可以利用pull事件作为检查是否需要加载更 ..
发布时间:2021-04-04 20:31:09 移动开发

如何使用Paging 3库更新单个项目

我正在尝试找到一种使用Paging 3库中的PagingAdapter更新回收者视图中单个项目的方法.我发现PagingAdapter.refresh()方法只有一种方法.但是此方法强制从网络加载所有列表.有人知道如何在不从网络加载所有页面的情况下实现它吗? 解决方案 当前,更新后备数据集的唯一方法是使列表无效并重新加载列表.对于正在使用缓存层的分层源(无论是在房间还是在内存中的db中), ..

分页库-无法停止加载项目

我正在使用Paging库直接从网络中加载日期.我是否必须实施逻辑以停止获取数据?就我而言,可能是收到的项目数少于页面大小时.目前,当我到达列表末尾时,lib会继续加载新页面. 解决方案 从理论上讲,PageKeyedDataSource具有结果回调, PageKeyedDataSource.LoadCallback 并且有一个 onResult 方法,文档说的是 如果没有更多 ..

如何使用列表大小与Room数据库返回的列表大小不同的AAC分页库

我正在尝试使用新的 Paging Library 和 Room 作为数据库,但是我遇到了一个问题,即由数据库不应该是发送到UI的相同列表,我先将一些实体 map 展示给用户,然后在此 map 操作中更改列表的大小(添加项目),显然 Paging Library 不支持这种操作,因为当我尝试运行该应用程序时,出现了以下异常: 原因:java.lang.IllegalStateException:无 ..

具有清晰架构的Android分页库

我正在尝试 Android体系结构组件中的分页库,但是我有怀疑将其集成到基于干净架构的项目中. 通常我有3个模块: 主模块(应用程序) 数据模块(具有网络和数据库依赖性的Android模块) 域模块(纯Kotlin模块) 为了引入分页,我不得不考虑将 PagedList 类作为域类.(IMO并不是一个糟糕的主意,因为最后是一个列表,并且数据源是抽象的) 因此在域 ..

PagedListAdapter.submitList()更新现有项目时表现怪异

有关此主题的小故事:该应用程序仅在确认后使用对话框更新单击的行的值.在会议室数据库上使用分页方案. 添加或删除项目时,将获取最新的数据集并将其传递到submitList方法,然后所有更改都可以看到并正常工作. 问题开始于此,如果现有项目已更新,则再次正确地获取了最新的数据集并将其传递给submitList,但是这次似乎没有变化. 当我调试 DIFF_CALLBACK 并将我的项目 ..