【发布时间】:2021-01-20 17:23:52
【问题描述】:
我需要从 Dialog 进行 API 调用。这样做是否需要回到片段,或者有什么方法可以引用片段视图模型?
【问题讨论】:
标签: android mvvm view dialog viewmodel
我需要从 Dialog 进行 API 调用。这样做是否需要回到片段,或者有什么方法可以引用片段视图模型?
【问题讨论】:
标签: android mvvm view dialog viewmodel
你可以试试这个:
使用接口,在fragment中实现,这样你就有回调函数了。
传递高阶函数,在对话框中这样声明:
var click: (() -> Unit)? = null;
然后您可以在实例化对话框时从片段中设置它。
使用共享视图模型,例如在您的活动中创建视图模型,然后您可以从每个片段或对话框中访问它,如下所示:
(requireActivity() as MainActivity).viewModel
像这样,您可以在对话框内的视图模型变量(通常是 liveData)中设置值并观察片段的变化
【讨论】:
我认为您可以将一个高阶函数传递给对话框,并使用内部的 viewModel 在片段中处理它。
【讨论】: