之前一直都是這么寫的
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