2014-01-29 126 views
1

我有一個非常令人沮喪的問題與嵌套片段。我有一個看似簡單而直接的情景:嵌套片段與片段尋呼機適配器

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片段釋放資源。當然,這不可能像目前似乎很難...

回答

3

檢查this問題我問了一段時間,並接受了答案。我想這可能是同樣的問題。

+0

哇!精美的作品! – pqvst

相關問題