首先我很抱歉,如果這個解釋似乎不清楚,我是Android的新手。 我在主要活動中有一個ViewPager,顯示用戶動態添加的片段。碎片最初是在活動啓動時創建的,並通過適配器添加到ViewPager,即適配器只是簡單地返回適當的碎片,正如我理解的那樣,當ViewPager首次檢索到碎片時,片段的內容就會創建。什麼是恢復片段的正確方法?
問題是當方向改變後主恢復所有片段並且當Adapter試圖返回由用戶新創建的Fragment方法時,不再調用createView(),並且它失敗並且出現NullPointerException。看起來ViewPager保留了最初附加的片段,並且不會爲相同位置的新添加的片段調用createView()。
我有一種感覺,我錯過了片段生命週期中的關鍵點。我不想改變設計。我的主要問題是什麼正確的方法是返回活動恢復後添加到ViewPage的片段?有沒有辦法找到最近附加的碎片?
我主要關心的是我需要找到一個將在ViewPager中重用的片段,因爲它在初始連接之後在那裏。我的設計並沒有假設片段被保留在ViewPager中,並且它創建了一個新片段。所以,而不是創建一個新的我必須找到附加一個並從適配器返回它。 –
請參閱我的答案更新,其中顯示了檢索已存在片段的一種方法。希望這有助於我看到 – CurlyPaul
,所以FragmentManager會在活動復活時關注碎片。我嘗試過,但在其他情況下。我現在就試試這個。謝謝! –