Hilt 创建一个在 Activity 及其片段之间共享的视图模型实例

1 android dependency-injection android-fragments android-viewmodel dagger-hilt

我试图在活动和片段之间创建共享视图模型。在活动中:

    val viewModel: SharedViewModel by viewModels()
Run Code Online (Sandbox Code Playgroud)

并在片段中:

val viewModel: SharedViewModel by navGraphViewModels(R.id.activity_nav_graph) {
        defaultViewModelProviderFactory
    }
Run Code Online (Sandbox Code Playgroud)

但当前有 2 个实例,其中一个在 Activity 上创建,一个在 Fragment 中创建

i30*_*mb1 6

在你的片段中应该是

private val viewModel: SharedViewModel by activityViewModels()
Run Code Online (Sandbox Code Playgroud)