Android筆記之Fragment中創建ViewModel的正確方式


之前一直都是這么寫的

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM