(1)Fragment可以作爲Activity界面的一部分組成出現
(2)可以再一個Activity中同時出現多個Fragment,並且一個Fragment也可以再多個Activity中使用
(3)在Activity運行過程中,可以添加,移除或替換Fragment
(4)Fragment可以響應自己的輸入事件,並且有自己的生命週期,他們的生命週期會受宿主Activity的生命週期影響
onCreateView()方法
Fragment第一次繪製它的用戶界面的時候,系統會調用此方法,爲了繪製Fragment的UI,此方法必須返回一個View,如果不顯示UI,返回null即可。
Fragment加載方法
(1)靜態加載
在Activity的layout文件中聲明Fragment,需要特別注意的是<fragment>中的android:name屬性制定了在layout中實例化的Fragment類
標識Fragment的方法:
android:id屬性提供一個唯一ID
android:tag屬性提供一個唯一字符串
(2)動態加載
撰寫代碼將Fragment添加到一個Activity layout中 add():添加一個Fragment(指定要添加的fragment和插入的View) 與此類似的還有remove(),替換()
處理Fragment事務
根據用戶的交互情況,對Fragment進行添加,移除,替換,以及執行其他動作,提交給Activity的每一套變化被稱作一個事務。
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
每一個事務都是同事執行一套變化,可以在一個事務中設置你所有想執行的變化,包括add(),remove(), replace(),然後提交給Activity,必須調用commit()方法
如果允許用戶通過按下BACK按鍵返回到前一個Fragment狀態,調用commit()之前可以加入addToBackStack()方法
Fragment與Activity通信
> Fragmen的生命週期
關鍵方法:
onAttach()
onCreateView()
全部方法:
(1)啓動Fragment
onAttach() ====>onCreate() ====> onCreateView() ===> onActivityCreated() ===> onStart() ===>onResume()
(2) 屏幕鎖屏
onPause() ====> onStop()
(3) 屏幕解鎖
onStart() ====> onResume()