Android MVVM 对话框视图模型

Posted

技术标签:

【中文标题】Android MVVM 对话框视图模型【英文标题】:Android MVVM dialog viewmodel 【发布时间】:2021-08-01 16:20:12 【问题描述】:

我正在开发一个带有 MVVM 模式和带有 hilt di 的架构组件视图模型的应用程序。 现在我想在对话框中使用视图模型,但对话框没有by viewModels() 委托来初始化视图模型。有什么想法吗?

【问题讨论】:

这能回答你的问题吗? Show Dialog from ViewModel in android MVVM Architecture @AbanoubAsaad 不,我的问题不是显示对话框,我必须在对话框中使用视图模型 【参考方案1】:

by viewModels() 是一个Fragment 扩展函数。 如果您需要 ViewModel,您可能还需要使用 FragmentDialog 而不是您当前的实现以更好地分离。

使用FragmentDialog by viewModel 应该可以工作,因为FragmentDialog 扩展了Fragment

【讨论】:

那么在 mvvm 中使用对话框(不是 fragmentDialog)的正确方法是什么? 如果它是一个简单的对话框,那么我认为MaterialDialog 是一个不错的选择 -> material.io/components/dialogs/android#dialogs 如果它有逻辑(需要一个视图模型表明它有一些更复杂的逻辑),而不是使用 @987654330 @ 和 ViewModel。这基本上是一个Fragment,但它显示为一个对话框

以上是关于Android MVVM 对话框视图模型的主要内容,如果未能解决你的问题,请参考以下文章

使用 MVVM 和视图模型通信的 WPF 窗口模式对话框

如何从作为wpf mvvm模式中的窗口打开的视图模型中关闭用户控件?

Android MVVM:无法实例化视图模型

WPF MVVM 对话框示例

MVVM 架构与数据绑定库

在 MVVM 模式中,模型和视图啥时候直接相互通信?