1、Fragment的創(chuàng)建
(1)盡量使用v4包中的Fragment
(2)必須重寫onCreateView()方法,使用inflater,從xml布局文件加載一個布局并返回。

注意:
1)傳遞至onCreateView()的container參數(shù)是您的 Fragment 布局將插入到的父?ViewGroup(來自 Activity 的布局)。savedInstanceState參數(shù)是在恢復(fù) Fragment 時,提供上一 Fragment 實(shí)例相關(guān)數(shù)據(jù)的Bundle(處理 Fragment 生命周期部分對恢復(fù)狀態(tài)做了詳細(xì)闡述)。
2)inflate(int resource,ViewGroup root, boolean attachToRoot)方法帶有三個參數(shù):
resource:您想要擴(kuò)展的布局的資源 ID;
root:將作為擴(kuò)展布局父項(xiàng)的ViewGroup。傳遞container對系統(tǒng)向擴(kuò)展布局的根視圖(由其所屬的父視圖指定)應(yīng)用布局參數(shù)具有重要意義;
attachToRoot:指示是否應(yīng)該在擴(kuò)展期間將擴(kuò)展布局附加至ViewGroup(第二個參數(shù))的布爾值。(在本例中,其值為 false,因?yàn)橄到y(tǒng)已經(jīng)將擴(kuò)展布局插入container— 傳遞 true 值會在最終布局中創(chuàng)建一個多余的視圖組。)
(3)傳參
一般使用 Fragment,直接使用 new,如果有參數(shù),直接在構(gòu)造方法中傳入。但這樣會有問題,比如當(dāng)屏幕方向發(fā)生變化,F(xiàn)ragment 中的數(shù)據(jù)就會丟失。原因是系統(tǒng)會重新構(gòu)造一個新的 Fragment,調(diào)用的是無參的構(gòu)造方法,因此你傳入的數(shù)據(jù)都會丟失。
解決方案:使用 Fragment.setArguments(Bundle) 進(jìn)行傳參。因?yàn)?Bundle 會被保存下來,當(dāng)重新構(gòu)建 Fragment 時,Bundle 仍然有效。

2、Fragment與Activity生命周期對應(yīng)關(guān)系

3、Fragment管理及其事務(wù)
(1)Fragment管理使用FragmentManager,可從Activity中調(diào)用getSupportFragmentManager() 來獲取。
(2)Fragment事務(wù)使用FragmentTransaction來完成,調(diào)用add()、remove()和replace()等方法為給定事務(wù)設(shè)置您想要執(zhí)行的所有更改。然后,要想將事務(wù)應(yīng)用到 Activity,您必須調(diào)用commit()。
FragmentTransaction可以通過FragmentManager.beginTransaction()來獲取。
4、與Activity之間通信
(1)簡單的:Fragment可以通過getActivity()來訪問Activity,Activity也可以通過findFragmentById()或Tag的方式訪問Fragment,當(dāng)然亦可以通過FragmentManager。
(2)重點(diǎn):使用回調(diào)的方式
在某些情況下,您可能需要通過 Fragment 與 Activity 共享事件。執(zhí)行此操作的一個好方法是,在 Fragment 內(nèi)定義一個回調(diào)接口,并要求宿主 Activity 實(shí)現(xiàn)它。 當(dāng) Activity 通過該接口收到回調(diào)時,可以根據(jù)需要與布局中的其他 Fragment 共享這些信息。
步驟:
1)Fragment 創(chuàng)建回調(diào)接口,并保留一個引用 mCallBack
2)宿主 Activity 實(shí)現(xiàn)回調(diào)接口
3)通過 Fragment 的 onAttach(Activity activity) 方法實(shí)例化 mCallBack
4)在 Fragment 中觸發(fā)響應(yīng)事件時,調(diào)用接口方法,實(shí)現(xiàn)共享信息
以上所有均參考Android開發(fā)者--Fragment文檔