如何在片段中使用共享 ViewModel

How to use Shared ViewModel in fragment

我想在多个片段之间共享一个 ViewModel 我们在刀柄之前尝试了一下,效果很好 但是在创建了两次 hilt ViewModel 之后

我的问题是如何每次使用刀柄获得相同的 ViewModel

@HiltViewModel

对于共享 VM,您在片段中使用 viewModel by activityViewModels<MyViewModel>()。永远不要创建一个 Singleton ViewModel 这种破坏 ViewModel .

的目的

此扩展来自片段 ktx 库。您可以使用以下依赖项添加它。

 def activity_version = "1.2.0"
 def fragment_version = "1.3.0"
 implementation "androidx.activity:activity-ktx:$activity_version"
 implementation "androidx.fragment:fragment-ktx:$fragment_version"

当您注入它时,您可以将其用作:

 @AndroidEntryPoint
class MyFragment : Fragment(){
    private val viewModel by activityViewModels<MyViewModel>()
}