美文网首页
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