2018年1月15日 星期一

[Android] Fragment 更換,該用add,還是replace呢?

問題:
我有個主頁面,想根據選單變更裡面的Fragment,發現有兩種換fragment的方法,該用哪種呢?

處理:Google 「fragment add replace」

參考:泡在網上的日子幫庫編程StackOverflowAndroid Advenced

說明:主要是看需求...兩個都能達成對方的行為,只是要注意寫法

  1. 用add換的話,容器裡有多個frgments,要自己注意寫hide/show事件很煩、要自己處理frgment疊圖事件很煩、要從fragmentManager裡找出來避免重複加很煩,那到底有啥好處?
    =>不會跑全部生命週期,秀過一次再秀較快,也會保留之前狀態,適合幾個會切換的fragments組合。
     
  2. 用replace換的話,容器裡只有一個fragment,寫法較簡單,一開始碰fragment不想花時解add問題的,就用replace吧;
    =>只是它每次會跑fragment的全部生命週期,所以重複換頁較add慢一點(慢多少看你生命週期做多少事),要回復之前狀態要自己寫。

上面有個重點:「生命週期 (life cycle)」,如果要在Fragment的特定生命週期做事,且確保用的方法是符合需求的,有跑到該跑的週期,沒跑到不該跑的程式。

至於哪些會跑到哪些不會跑到,因為case很多,就參考Android Advenced吧~
或著自己印Log囉~

沒有留言:

張貼留言