我有一個非常令人沮喪的問題與嵌套片段。我有一個看似簡單而直接的情景:嵌套片段與片段尋呼機適配器
MainActivity
ContentFrame
MainFragment
ViewPager (with FragmentStatePagerAdapter)
FragmentA
FragmentB
FragmentC
...
注:我不是從尋呼機適配器外部抱着片段的引用。我實例化頁面適配器的getItem方法中的片段。
案例1
我遇到的問題是,鑑於尋呼機片段沒有收到任何狀態變化。當我在MainActivity中交換片段時,在MainFragment上調用onPause和onResume。但是,onPause和onResume不會在視圖分頁器片段上調用。
當我切換回MainFragment,onCreateView被調用,創建一個新的ViewPager適配器,但如預期嵌套的片段不會重新instansiated因爲它們被標記,並可以重複使用。但是,由於onPause和onResume永遠不會被調用,我的狀態會變得混亂。
案例2
此外,ViewPager片段似乎從來沒有被摧毀。如果我而是明確刪除MainFragment每當我換到使用不同的外部片段:
fm.beginTransaction().remove(mainFragment).commit();
並在稍後重新實例MainFragment。即便如此,ViewPager片段似乎從未被清理過。現在,MainFragment最終實例化了新的ViewPager片段,並最終生成了許多ViewPager片段,這些片段永遠不會被銷燬。
底線
基本上我只是希望能夠獲得和在每當MainFragment變爲有效/無效的ViewPager片段釋放資源。當然,這不可能像目前似乎很難...
哇!精美的作品! – pqvst