2018年1月16日 星期二

[Android] Fragment用add加入後,Actvity重建時發生神奇疊圖事件,怎辦?

問題:
決定挑戰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。


沒有留言:

張貼留言