美文网首页
ViewModel的创建方式

ViewModel的创建方式

作者: MIRROR1217 | 来源:发表于2020-03-08 12:32 被阅读0次

Jetpack组件中,我们一般会用到ViewModel,那么我们来说下它的几种创建模式和应用场景

1.第一种方式

 val viewModel by lazy {
      ViewModelProvider(this,ViewModelProvider.NewInstanceFactory()).get(modelClass)
 }

一般在Activity中使用,它只会被创建一次

2.第二种方式

 val viewModel by lazy {
      ViewModelProvider(requireActivity(),ViewModelProvider.NewInstanceFactory()).get(modelClass)
 }

一般被用于Fragment,它也只有一个实例,被用于Fragment的数据共享

3.第三种方式

 val viewModel by lazy {
      ViewModelProvider.NewInstanceFactory().create(modelClass)
 }

一般被用于Fragment,但是它会随着Fragment的重新创建,也会随着Fragment销毁而销毁,一般配合着ViewPager 里面的 Fragment使用。

ViewModel现在还不是非常成熟,有些坑需要我们自己去研究的,大家一起学习!

相关文章

网友评论

      本文标题:ViewModel的创建方式

      本文链接:https://www.haomeiwen.com/subject/furddhtx.html