最近在做項目的時候,遇到了fragment重疊的問題。具體的情況是,我在一個fragment中,通過add的到FragmentTransaction的方式,又放了四個子fragment allFrg,movieFrg,newsFrg,otherFrg。當我點選allFrg對應tab鍵時,通過hide隐藏其他三個fragment,通過show來顯示allFrg。正常情況下顯示是對的,問題就在我切換他其他的app,操作一會之後,再回到目前的app,有很大幾率會出現fragment重疊的現象。
通過搜集相關資料,我找到了原因,在我切換到其他app的時候,fragment所在activity已經被銷毀。并且通過
?
1 2 3 4 5 6 | |
這個方法儲存了相關的資料。
當我再次回到這個app的時候,通過onCreate中的參數savedInstanceState恢複了之前的fragment。此時的FragmentTransaction中的相當于又再次add了fragment進去的,之前儲存的fragment也還在。hide()和show()方法對之前儲存的fragment已經失效了。是以出現了重疊的現象
解決方法:
直接在包含Fragment的Activity中複寫
?
1 2 3 4 5 | |