android - 在 MVVM 架构中使用 DialogFragment 的正确方法是什么?
问题描述
我正在尝试在 MVVM 架构中使用 DialogFragment,但我找不到某些问题的答案。
我应该使用@AndroidEntryPoint 注释吗?像这样:
@AndroidEntryPoint class MyDialogFragment(): DialogFragment() { }
我应该如何提供 viewModel?DialogFragment 应该有自己的 viewModel 吗?还是使用 Fragment 的 viewModel 更好?像这样:
val viewModel: FragmentViewModel by viewModels()
或者
val viewModel: DialogFragmentViewModel by viewModels()
我应该如何与我调用 DialogFragment 的片段进行通信?
解决方案
您应该以这种方式使用 @AndroidEntryPoint 注释 DialogFragment 并且不要忘记添加@Assisted private val savedStateHandle: SavedStateHandle
您的 viewModel 构造器,第二个问题是个人喜好,有些人会使用主要片段 ViewModel 但如果您打算在多个地方使用 DialogFragment 可以有有自己的视图模型,至于通信,您可以使用事件传递数据,您可以查看https://developer.android.com/guide/topics/ui/dialogs#PassingEvents
推荐阅读
- excel - VBA宏循环失败,范围类的Delete方法失败,但先工作几次
- c# - 应用程序运行时如何刷新字体列表?
- laravel - Laravel 配置助手未设置
- node.js - “错误找不到模块'/var/task/index”AWS Lambda
- javascript - 试图以已知角度在画布单位圆中显示一条线
- python - 按阈值将python列表分成多个列表?
- php - 为什么我的 PHP preg_match 正则表达式不起作用?
- android - 从 Firebase 实时数据库中读取数据
- firebase - 使用 Flutter 同步 Firestore 时在 Null 上调用了方法 []
- .net - 使用 .Net Framework 运行 .Net Core 应用程序