android - 用于recyclerView的适配器的Android独立viewModel
问题描述
我们在使用 recyclerView 的 mvvm 设计模式中有一个问题:
我们有一个带有自己的视图模型 (FragmentViewModel)的片段
和一个带有它自己的视图模型 (ListViewModel) 的列表适配器
问题是:
- 在片段的视图模型(FragmentViewModel)中,我们从 api 存储库中获取数据,如何将这些值设置为适配器的视图模型(ListViewModel)?
- 在适配器的视图模型(ListViewModel)内部,当单击行项时,如何调用片段视图模型(FragmentViewModel)内部的函数来对片段视图进行操作?
注意:
- 我们使用 dagger 来注入我们的 viewModel 和适配器。
- 我们的列表适配器将与其他片段重用。
解决方案
我的建议是,/n 永远不要使用 Fragment 自己的 ViewModel,而是使用带有键的活动一。区分不同的片段。
ViewModelProviders.of(requireActivity(), factory).get(detail.getJobId(), TimelineActivityViewModel.class);
这detail.getJobId()
是一个ID。
推荐阅读
- php - 单击 PHP Export with Jquery 中的导出按钮后没有执行任何操作
- lisp - 当键是字符串时如何修改嵌套的plist
- r - R闪亮:根据输入更改背景颜色
- django - 异步发送的电子邮件和通知中的 Django 本地化
- command - 如何从今天的日期中减去一个以获得昨天的日期
- html - 如何在 HTML5 中创建一个带有链接的按钮?
- python - 有多少种方法可以使用 Django ORM 获取 ManyToMany 字段数据
- python - 使用抛出ValueError的多列循环数据框
- react-native - React Native:我如何让我的团队测试我的应用程序
- arrays - 查找数组右侧最远的较小数字的索引