android - 如何使用 MVVM 正确处理 RecyclerView 中的恒定数据流?
问题描述
我的项目是用 MVP 模式编写的。RecyclerView 的每个元素都是一个自定义视图。每个自定义视图都有一个演示者,它负责监听来自流的数据并在自定义视图中设置接收到的值。Stream 每 4 秒发送一次新数据。流发送的模型是对象列表:
FancyStreamValue(val id: Int, val value: String)
RecyclerView 中的每个图块都有固定的 id,它与 FancyStreamValue 中的 id 相同,因此每个演示者都从他的 id 下的流中获取值。
我想用 LiveData 重构 MVVM 模式。据我所知,自定义视图不应该有 ViewModel 里面。实施这项权利的最佳方式是什么?到目前为止,我已经尝试使用一个 ViewModel,它从流中获取整个值列表并通过设置回收器视图适配器
fancyStreamAdapter.submitList(streamValuesList)
我注意到 recyclerview 列表没有 100% 平滑滚动,只是在新数据从流中以新值到达时不时卡住
RecyclerView 也在闪烁,我不确定每 4 秒刷新一次整个列表是否有效?请提供建议:) 提前谢谢!!:)
解决方案
推荐阅读
- ruby-on-rails - 将字符串 arra 转换为整数数组
- flutter - 当权限被永久拒绝时,Flutter permission_handler 包不打开应用程序设置
- jestjs - 如何将 jest.spyOn 与 typescript 命名空间一起使用
- css - 在 CSS 文件中使用 :local 有什么好处?
- python - 将 Excel DAX 转换为 Pyspark
- python - 如何取回我存储的位置数据
- react-native - 如何使用带有树莓派的原生移动应用程序
- node.js - 连接处于关闭状态时无法添加新命令(knex.js with mysql2 + mysql8 + node.js 16)
- node.js - 如何使用猫鼬中的对象ID将一对多与引用应用
- matlab - 在matlab中对向量的每个值执行一个函数?