Android fragments 在Android中如何在单个片段中使用多个viewmodels?

Android fragments 在Android中如何在单个片段中使用多个viewmodels?,android-fragments,viewmodel,autocompletetextview,android-mvvm,mutablelivedata,Android Fragments,Viewmodel,Autocompletetextview,Android Mvvm,Mutablelivedata,假设我有一个DashboadFragment,它有自己的ViewModel名为DashboadViewModel。我已经为AutoCompleteTextView创建了单独的布局,它包含在fragment\u dashboard.xml文件中。我为AutoCompleteTextView创建了单独的ViewModel,即autocompletetextviewmodel。因此,在这里,我尝试观察在AutoCompleteTextView中键入到DashboardFragment中的数据,但没有起

假设我有一个DashboadFragment,它有自己的
ViewModel
名为
DashboadViewModel
。我已经为
AutoCompleteTextView
创建了单独的布局,它包含在
fragment\u dashboard.xml
文件中。我为
AutoCompleteTextView
创建了单独的
ViewModel
,即
autocompletetextviewmodel
。因此,在这里,我尝试观察在
AutoCompleteTextView
中键入到
DashboardFragment
中的数据,但没有起作用


我最近开始了MVVM模式的开发。

您可以使用委托视图模型在片段之间传递数据

private val viewModel: ListViewModel by viewModels({requireParentFragment()})
这确实意味着您的仪表板片段中将包含一个AutoCompleteTextViewModel

另一个解决方案是使用
setFragmentResult()
API


有关您场景中的更多信息,请不要创建这种原子性的视图模型,只需使用托管片段的视图模型即可。是的,但实际上,它的通用布局和整个应用程序中使用的视图模型。因此,我必须创建通用的ViewModel,以便它可以与其他fragment的ViewModel一起使用。我们不要忘记,ViewModel只是一个无头片段,用于帮助整理代码并使业务逻辑有可能用于测试。具有相同生命周期的ViewModel理论上可以引用另一个具有完全相同生命周期的ViewModel,而不会出现任何问题(尽管我会避免这样的紧密耦合)。请提供更多关于您的具体问题的代码,它可以工作,这取决于您是如何处理的。