如何解决Dialog 可以在 android 中拥有视图模型吗?
我需要从对话框进行 API 调用。这样做是否需要返回到片段,或者有什么方法可以引用片段视图模型?
解决方法
你可以试试这个:
-
使用接口,在片段中实现它,这样你就有回调函数。
-
传递高阶函数,在对话框中这样声明:
var click: (() -> Unit)? = null;
然后您可以在实例化对话框时从片段设置它。
-
使用共享视图模型,例如在您的活动中创建视图模型,然后您可以像这样从每个片段或对话框访问它:
(requireActivity() as MainActivity).viewModel
像这样,您可以在对话框内的视图模型变量(通常为 liveData)中设置值并观察片段的变化
,我认为你可以将一个高阶函数传递给对话框,并使用里面的 viewModel 在片段中处理它。
,是的,这是可能的,我能够做到这一点,因为 DialogFragment 类扩展了 Fragment。所以我添加了一个视图模型,就像任何其他片段一样。
像下面这样 BaseDialog 类扩展了 DialogFragment
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。