決定挑戰add加Fragment,結果在旋轉畫面後跟Activity被回收後,發現容器裡2個Fragment疊在一起了,怎辦呀?
處理:Google 「Fragment 重疊」
參考:CSDN、簡書1、簡書2、腳本之家
說明:
會發生Fragments重疊的情況,一定是用add,而且加過2個Fragment或以上,然後發生了Activity重建的事件(會跑到onSaveInstanceState > onCreate)。
原因在於沒記住Fragment hidden狀態下又重建重加,就蓋囉~
解法有好幾種,可看參考,我的作法是
- 融合CSDN的設定轉向不重建Activity(android:configChanges)
- 加上腳本之家的存取目前頁面index,存的地方也是onSaveInstanceState,只是我讀的地方是onCreate,避免onCreate處理完onRestoreInstanceState又處理一次。
- 用index去FragmentManager裡先找看有沒有加過,沒有才根據index新建Fragment。再看這fragment的isAdded()來決定要add還是要show。
沒有留言:
張貼留言