繁体   English   中英

如何将 function 作为参数传递给目标片段 - Android 导航组件

[英]How to pass a function as an argument to a destination fragment - Android Navigation Component

我有一个DialogFragment扩展了我想在导航图中用作目的地的 DialogFragment,这样我就可以像打开任何其他片段一样打开它。 我想将函数作为 arguments 传递给我的DialogFragment class 以用于正负按钮侦听器。 在这种情况下,它们将是来自调用 Fragment 的函数。

那么,是否可以将函数作为 arguments 传递给导航组件目标,或者是否有另一种方法来 go 这样做。 DialogFragment 需要自己的 ViewModel 吗?

正如@CommonsWare 建议的那样,我最终这样做的方式是拥有一个共享的 ViewModel。

ViewModel 的设置如下:

class ViewModel(application: Application) : AndroidViewModel(application) { }

它是这样实例化的,在使用它的两个片段中使用requireActivity()以确保它充当 singleton,因为这些片段共享一个父活动。

val viewModel = ViewModelProvider(requireActivity()).get(ViewModel::class.java)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM