什麼是Fragment
Fragment是在Android3.0中引入,目的使用來解決不同螢幕分辨率上的UI顯示與互動問題。
Fragment有自己的布局,生命周期和響應事件,但它必須依附Activity存在,當它依附的Activity生命周期結束,
它的生命周期也就随之結束。
Fragment的使用可以大大減少Activity的使用,給程式瘦身,使程式更加的易于維護,而且Fragment還可以
動态替換,在UI的變化上擁有巨大的優勢。
Fragment的生命周期
上圖:
每個方法的調用時間和場景
onAttach()
Fragment和Activity建立關聯的時候調用(獲得activity的傳遞的值) onCreateView()
為Fragment建立視圖(加載布局)時調用(給目前的fragment繪制UI布局,可以使用線程更新UI) onActivityCreated()
當Activity中的onCreate方法執行完後調用(表示activity執行oncreate方法完成了的時候會調用此方法) onDestroyView()
Fragment中的布局被移除時調用(表示fragment銷毀相關聯的UI布局) onDetach()
Fragment和Activity解除關聯的時候調用(脫離activity)
Fragment生命周期解讀
- 當一個Fragment被建立時依次調用
onAttach()
onCreate()
onCreateView()
onActivityCreated()
- 當Fragment對使用者可見時
onStart()
onResume()
- 當Fragment不可見時
onPause()
onStop()
- 當Fragment被銷毀時
onPause()
onStop()
onDestroyView()
onDestroy()
onDetach()
- 像Activity一樣,在以下的狀态中,可以使用Bundle對象儲存一個fragment的對象
onCreate()
onCreateView()
onActivityCreated()
Fragment與Activity的生命周期對比