'ViewModelProviders' 已弃用。将 lifecycle-extensions:2.1.0 升级到 2.2.0-alpha05 后
'ViewModelProviders' is deprecated. After upgrading lifecycle-extensions:2.1.0 to 2.2.0-alpha05
Android 工作室 -> 新项目 -> 选择 "Tabbed Activity"。
将生命周期扩展从 2.1.0 升级到 2.2.0-alpha05 后,ViewModelProviders 已弃用。
在简单的情况下,它可以替换为 "by viewModels()"
例如:
plHlFrModel = ViewModelProviders.of(this).get(PlHlFrModel::class.java)
替换为:
private val plHlFrModel by viewModels<PlHlFrModel>()
但我不知道如何替换这个:
pageViewModel = ViewModelProviders.of(this)
.get(PageViewModel::class.java).apply {
setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
}
在哪里以及如何以 "by viewModel" 形式放置 apply{} 块?
也许还有其他方法?
而不是使用 ViewModelProviders.of(this)
使用 ViewModelProvider(This)
new ViewModelProvider(this).get(Vm.class);
代替 java
ViewModelProviers
已弃用,我们只使用 ViewModelProvider.
直接访问
pageViewModel = ViewModelProvider(this)
.get(PageViewModel::class.java).apply {
setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
}
使用委托
private val pageViewModel by viewModels<PageViewModel>()
//function scope
pageViewModel.setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
viewModel = ViewModelProviders.of(this).get(vm.class); // is deprecate
viewModel = new ViewModelProvider(this).get(vm.class); // is true
viewModel = new ViewModelProvider(this).get(vm.class);
这仅适用于以下依赖项:
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
Android 工作室 -> 新项目 -> 选择 "Tabbed Activity"。
将生命周期扩展从 2.1.0 升级到 2.2.0-alpha05 后,ViewModelProviders 已弃用。 在简单的情况下,它可以替换为 "by viewModels()" 例如:
plHlFrModel = ViewModelProviders.of(this).get(PlHlFrModel::class.java)
替换为:
private val plHlFrModel by viewModels<PlHlFrModel>()
但我不知道如何替换这个:
pageViewModel = ViewModelProviders.of(this)
.get(PageViewModel::class.java).apply {
setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
}
在哪里以及如何以 "by viewModel" 形式放置 apply{} 块? 也许还有其他方法?
而不是使用 ViewModelProviders.of(this)
使用 ViewModelProvider(This)
new ViewModelProvider(this).get(Vm.class);
代替 java
ViewModelProviers
已弃用,我们只使用 ViewModelProvider.
直接访问
pageViewModel = ViewModelProvider(this)
.get(PageViewModel::class.java).apply {
setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
}
使用委托
private val pageViewModel by viewModels<PageViewModel>()
//function scope
pageViewModel.setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
viewModel = ViewModelProviders.of(this).get(vm.class); // is deprecate
viewModel = new ViewModelProvider(this).get(vm.class); // is true
viewModel = new ViewModelProvider(this).get(vm.class);
这仅适用于以下依赖项:
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'