适用于recyclerView'的Android独立视图模型;s适配器

适用于recyclerView'的Android独立视图模型;s适配器,android,mvvm,android-recyclerview,viewmodel,android-databinding,Android,Mvvm,Android Recyclerview,Viewmodel,Android Databinding,我们在使用recyclerView的mvvm设计模式中遇到问题: 我们有一个具有自己视图模型的片段(FragmentViewModel) 以及一个具有自己的视图模型(ListViewModel)的列表适配器 问题如下: 在片段的视图模型(FragmentViewModel)中,我们从api存储库获取数据,如何将这些值设置为适配器的视图模型(ListViewModel) 在适配器的视图模型(ListViewModel)中,当单击行项目时,如何调用片段视图模型(FragmentViewModel)

我们在使用recyclerView的mvvm设计模式中遇到问题:
我们有一个具有自己视图模型的片段(FragmentViewModel)
以及一个具有自己的视图模型(ListViewModel)的列表适配器

问题如下:

  • 在片段的视图模型(FragmentViewModel)中,我们从api存储库获取数据,如何将这些值设置为适配器的视图模型(ListViewModel)
  • 在适配器的视图模型(ListViewModel)中,当单击行项目时,如何调用片段视图模型(FragmentViewModel)中的函数来处理片段视图
备注:
-我们使用dagger注入viewModels和适配器。
-我们的列表适配器将与其他片段一起重用

我的建议是,/n 永远不要使用Fragment own的ViewModel,而是使用带有键的activity one。区分不同的片段

ViewModelProviders.of(requireActivity(), factory).get(detail.getJobId(), TimelineActivityViewModel.class);
这里
detail.getJobId()
是一个ID。

我的建议是,/n 永远不要使用Fragment own的ViewModel,而是使用带有键的activity one。区分不同的片段

ViewModelProviders.of(requireActivity(), factory).get(detail.getJobId(), TimelineActivityViewModel.class);

这里的
detail.getJobId()
是一个ID。

这只是我的观点,但是。。。。为适配器创建ViewModel过于工程化。适配器的用途是在列表中显示您的数据,根据单一责任原则,它不应包含任何类型的业务逻辑。没有逻辑由内而外的适配器viewModel,我们只是将数据传递给此视图模型,所以只需将数据直接传递给适配器?是的,但适配器应注入其依赖项(viewModel)这只是我的意见,但是。。。。为适配器创建ViewModel过于工程化。适配器的用途是在列表中显示您的数据,根据单一责任原则,它不应包含任何类型的业务逻辑。没有逻辑由内而外的适配器viewModel,我们只是将数据传递给此视图模型,所以只需将数据直接传递给适配器?是的,但适配器应注入其依赖项(viewModel)你提出建议的理由是什么?