Android 如何在MVVM体系结构中正确使用DialogFragment?

Android 如何在MVVM体系结构中正确使用DialogFragment?,android,kotlin,mvvm,android-dialogfragment,dagger-hilt,Android,Kotlin,Mvvm,Android Dialogfragment,Dagger Hilt,我试图在MVVM体系结构中使用DialogFragment,但我找不到一些问题的答案 我应该使用@AndroIdentityPoint注释吗?像这样: @AndroidEntryPoint class MyDialogFragment(): DialogFragment() { } val viewModel: FragmentViewModel by viewModels() 我应该如何提供viewModel?DialogFragment应该有自己的viewModel吗?还是使用Fra

我试图在MVVM体系结构中使用DialogFragment,但我找不到一些问题的答案

  • 我应该使用@AndroIdentityPoint注释吗?像这样:

    @AndroidEntryPoint
    class MyDialogFragment(): DialogFragment() {
    
    }
    
    val viewModel: FragmentViewModel by viewModels()
    
  • 我应该如何提供viewModel?DialogFragment应该有自己的viewModel吗?还是使用Fragment的viewModel更好?像这样:

    @AndroidEntryPoint
    class MyDialogFragment(): DialogFragment() {
    
    }
    
    val viewModel: FragmentViewModel by viewModels()
    

  • 我应该如何与调用DialogFragment的片段通信


  • 您应该以这种方式使用@AndroIdentityPoint注释DialogFragment,不要忘记在viewModel constractor中添加
    @Assisted private val savedStateHandle:savedStateHandle
    ,第二个问题是个人首选项,有些人会使用主片段ViewModel,但如果您计划在多个地方使用DialogFragment,您可能会有自己的ViewModel,至于通信,您可以使用事件传递数据,您可以查看一下

    您应该以这种方式使用@AndroidEntryPoint注释DialogFragment,不要忘记在viewModel constractor中添加
    @Assisted private val savedStateHandle:savedStateHandle
    ,第二个问题是个人偏好,有些人会使用主片段ViewModel,但如果您计划在多个地方使用DialogFragment,您可以拥有自己的ViewModel,至于通信,您可以使用您可以查看的事件传递数据