Android Paging 3 - 从 PagingData 对象获取数据列表

2024-03-24

我正在使用新的 jetpack Paging 3 库。我有一个特定的用例。我想使用视图模型在两个屏幕之间共享这些数据。

一个屏幕需要分页数据,对于第二个屏幕,我想要此数据的简单列表(不是分页列表,我需要使用该列表...)。我不想在 PagingData 对象中列出列表。

Is there any way how to get the list without PagingData object ? enter image description here

正如您所看到的,没有变量可以获取此数据。我什至在创建流程时在 viewModel 中尝试过它,但我还没有找到解决方案。


PagingData只是增量加载事件的无状态流,因此它不保存这种状态。

However PagingDataAdapter/ 不同(以及类似的其他演示者端变体),已经需要保存数据,因此它们公开了 API,例如PagingDataAdapter.snapshot()它可以为您提供当前呈现项目的列表。

请记住,所提供的数据是转换后的,可能不包括由于超出限制而丢失的页面maxSize,并且还可能与 fetcher 竞争,因为加载数据和将其显示在 UI 中之间需要一些时间。

这实际上取决于您对准确跟踪感兴趣的内容,但是从获取器端(跟踪预转换)您可以根据返回的结果构建列表PagingSource或者你也可以写一个无操作的 .map() 运算符PagingData它将看到每个项目(但不会为您提供有关订单的信息)。

不幸的是,Paging3 尚未提供可以为您构建此状态的非 ui 收集器(在测试中最有用),但这希望是我们将来可以研究的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Paging 3 - 从 PagingData 对象获取数据列表 的相关文章

随机推荐

  • 为什么 pthread_exit 会抛出省略号捕获的内容?

    如果函数被调用pthread create具有以下结构 try code pthread detach pthread self pthread exit NULL catch std cout lt lt I am here lt
  • Python Shutil Copyfile - 缺少最后几行

    我经常丢失尝试使用shutil copyfile复制的文件的最后几kb 我做了一些研究 确实看到有人在这里询问类似的问题 python Shutil复制函数缺少最后几行 https stackoverflow com questions 1
  • 如何在 vim 下突出显示 doxygen 中的 markdown?

    较新版本的 doxygen 附带了 Markdown 支持 有没有一种简单的方法可以将 Markdown 语法突出显示添加到 vim 中的 doxygen 注释块 顺便说一句 可以将 doxygen 语法添加到c文件通过使用set file
  • 在 C++ 代码中释放 Python GIL

    我有一个用 C 编写的库 我使用 SWIG 对其进行包装并在 python 中使用 一般来说 只有一个类 方法很少 问题是调用这些方法可能很耗时 它们可能会挂起我的应用程序 调用这些方法时不会释放 GIL 所以我的问题是 为这些方法调用释放
  • 如何用plotly在卫星地图上绘制箭头

    我正在尝试用绘图在卫星视图地图上可视化风向和强度 使用 Python 工作 但我想这个问题不是特定于平台的 下面是以前用Matlab制作的风图的截图 这可以通过情节实现吗 我尝试查看注释 但无法让它们在地图上工作 我尝试了如下所示的操作 但
  • cocos2d 屏幕上没有添加排行榜

    我使用下面的代码来显示排行榜 但我得到的只是控制台 cocos2d surface size 480x320 代码 void showLeaderboardForCategory NSString category Only execute
  • 如何以闭包作为参数调用闭包

    我有一个实现该特征的结构A它具有以下功能fn consume 我想传递一个回调给这个结构 由fn consume 像这样的事情 pub type OnVirtualTunWrite Arc
  • 使用 Javascript v3 API 添加多个点到 Google 地图

    我已经被这个问题困扰了好几天了 我在使用 Javascript API v3 向地图添加多个点时遇到问题 I read 这个线程 https stackoverflow com questions 3514152 adding points
  • 在 dart 中使用 fromJson 进行扩展

    我在 dart 中有一个 Identity 类 它看起来 简化 像这样 class Identity final String phoneNumber Identity required this phoneNumber Identity
  • 在 Pandas 中使用多处理读取 csv 文件的最简单方法

    这是我的问题 带有一堆 csv 文件 或其他文件 Pandas 是读取它们并将其保存到的简单方法Dataframe格式 但是当文件量很大时 我想用多处理来读取文件以节省一些时间 我的早期尝试 我手动将文件分成不同的路径 单独使用 os ch
  • 用 Plotly 绘制不同的组

    我有一个 python 数据框 看起来有点像这样 Device Date Reading Device1 1 02 17 100 33 Device1 2 02 17 300 23 Device1 3 02 17 99 00 Device2
  • 带有对象列表的 Python min 函数

    怎样才能使用key论证min比较对象列表 1 属性的函数 Example class SpecialNumber def init self i self number i li SpecialNumber 1 SpecialNumber
  • 使用原始查询、使用实体框架和 MVC 返回计数

    我在 MVC 网站中使用实体框架 我正在尝试使用原始查询获取记录数 我正在寻找类似的东西 但任何人都会对任何解决方案感到满意 var sql SELECT COUNT FROM dbo Articles WHERE CategoryID 3
  • gdb:显示源代码和asm中的相应行

    在 TUI 模式下运行 gdb 并显示源代码和汇编时 是否有一个选项可以突出显示映射到选定源代码行的指令集 您可以使用 GDB Dashboard 部分完成此操作 https github com cyrus and gdb dashboa
  • C# NetworkStream - 在读取时区分关闭套接字和 0 字节数组

    已解决 该问题基于错误的假设 在使用 TCP 时 我遇到了 NetworkStream Read 在两种不同情况下返回值 0 的问题 我很难区分 一些背景知识 我有一个有效的客户端 服务器解决方案 使用长度前缀消息通过 TCP 进行通信 然
  • 使用 Create React App 和 TypeScript 进行 Jest 测试时出现isolatedModules错误?

    我已经使用 typescript 启动了一个 Create React App 项目 当我编写测试时 我收到编译器错误 something test tsx test something gt expect 1 toBe 1 错误是 TS1
  • select2 插件不在 jquery 模式对话框内时工作正常

    我在 jquery 对话框中使用 select2 插件 但不起作用 当下拉时 焦点移动到输入控件 但立即离开它 不允许我输入任何内容 这是 HTML div title Asignar servicios a usuarios div
  • C# tableLayoutPanel 滚动除顶行之外的所有内容

    我正在使用 winforms 和 C 并查看 TableLayoutPanel 是否可以在大桌子上有滚动条 但不能让顶行滚动 这与 Excel 中 冻结窗格 选项的工作方式类似 我只想冻结顶行而不是其他任何东西 另外 我的桌子足够大 我还有
  • AWS lambda:pty 设备不足

    我尝试在 AWS lambda 中使用 pexpect 库 但收到以下错误 ERROR OSError out of pty devices 事实证明 任何包含 pty spawn 的代码都会在 lambda 中失败 下面是失败的 lamb
  • Android Paging 3 - 从 PagingData 对象获取数据列表

    我正在使用新的 jetpack Paging 3 库 我有一个特定的用例 我想使用视图模型在两个屏幕之间共享这些数据 一个屏幕需要分页数据 对于第二个屏幕 我想要此数据的简单列表 不是分页列表 我需要使用该列表 我不想在 PagingDat