首页 > 移动平台 > 详细

Android笔记之Fragment中创建ViewModel的正确方式

时间:2019-11-23 15:44:11      阅读:1211      评论:0      收藏:0      [点我收藏+]

之前一直都是这么写的

pageViewModel = ViewModelProviders.of(this).get(PageViewModel.class);  //参数this是当前fragment

后来发现,这么写,问题很大==

当我们使用ViewPager(或ViewPager2)时,在Fragment重建后,ViewModel会被重新创建(与Fragment重建前的ViewModel不是同一个)

后来我改成了这样

pageViewModel = ViewModelProviders.of(this).get(key, PageViewModel.class);

以为传入参数key后就ok了,然而ViewModel仍然被重建了

直到改成这样,才万事大吉^_^

pageViewModel = ViewModelProviders.of(requireActivity()).get(key, PageViewModel.class);

参考链接:Fragment Communication using ViewModel - AndroidWave

 

Android笔记之Fragment中创建ViewModel的正确方式

原文:https://www.cnblogs.com/buyishi/p/11918120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!