Jetpack Compose:“by viewModels()”与“viewModel<ViewModelName>()”

问题描述 投票:0回答:1

这里有什么区别?

val myViewModel: MyViewModel by viewModels()

val myViewModel = viewModel<MyViewModel>()

第一种方式如何运作?它如何知道要初始化哪个ViewModel?来自变量名后面的类型注释?

android kotlin android-jetpack-compose android-viewmodel
1个回答
0
投票
主要区别在于它们所针对的背景和框架:

第一种方法

val myViewModel: MyViewModel by viewModels()
(by viewModels())主要用于传统UI开发
(具有 XML 布局的活动/片段),

而第二个 (viewModel()) 在 Jetpack Compose 中使用。

val myViewModel = viewModel<MyViewModel>()
您可以在此处阅读更多内容 

Android 视图模型

© www.soinside.com 2019 - 2024. All rights reserved.