Fragment

一,F(xiàn)ragment知識概要
1,F(xiàn)ragment可以作為Activity界面的一部分組成出現(xiàn);
2,可以在一個Activity中同時出現(xiàn)多個Fragment,并且
一個Fragment也可以在多個Activity中使用;
3,在Activity運行過程中,可以添加、移除或替換Fragment
4,F(xiàn)ragment可以響應(yīng)自己的輸入事件,并且有自己的生命周期,他們的生命周期
會受宿主Activity的生命周期影響

二,onCreateView()方法
Fragment第一次繪制Fragment的用戶界面的時候,系統(tǒng)會調(diào)用這個方法,為了繪制
Fragmeng的UI,此方法必須返回一個View,如果不顯示飛UI,返回null即可;

三,F(xiàn)ragment的加載方式
靜態(tài)加載
動態(tài)加載

四,靜態(tài)加載

在Activity的layout文件中聲明Fragment,
<fragment>中的android:name的屬性指定了飛在layout中實例化的Fragment類

標(biāo)示Fragment的方法:
android:id 提供一個唯一的id
android:tag 提供一個唯一的字符串

五、動態(tài)加載
add() 添加一個Fragment到View中
remove()
replace()

處理Fragment事務(wù) 
 根據(jù)用戶的交互情況,對Fragment進行添加、移除、替換,以及執(zhí)行其他動作,提交給Activity的每一套變化被稱為一個事務(wù)

FragmentManager fragmentManager =getFragmentManager();
FragmentTransaction beginTransation =fragmentManager.beginTransaction();

每一個事務(wù)都是同時執(zhí)行一套變化,可以在一個事務(wù)中設(shè)置你所有想執(zhí)行的變化,包括add(), remove(),replace(), 然后提交給

Activity,必須調(diào)用 commit()方法;

如果允許用戶通過按下BACK按鍵返回到前一個Fragment狀態(tài),
調(diào)用commit()之前可以加入addToBackStack()方法

六, Fragment的生命周期
Activity State Fragment Callbacks
created() onAttach()
//當(dāng)Fragment被添加到Activity的時候會調(diào)用一次,并且只調(diào)用一次
onCreate()
//創(chuàng)建Fragment的時候,會調(diào)用一次,并且只調(diào)用一次
onCreateView()
//每次創(chuàng)建Fragment中的View組件的時候,都會被回調(diào)一次
onActivityCreated()
//當(dāng)Fragment所走的Activity啟動完成的時候,會被調(diào)用一次
Started onStart()
//啟動 Fragment
Resumed onResume()
//恢復(fù)Fragment時候會被回調(diào),調(diào)用onStart()方法后面一定會調(diào)用他
Paused onPause()
//暫停 Fragment
Stopped onStop()
//停止Fragment
Destroyed onDestroyView()
     ?。N毀Fragment中的View組件的時候,會被調(diào)用一次
onDestroy()
//銷毀Fragment時會被調(diào)用
onDetach()
// 從Activity中刪除Fragment的時候,會回調(diào)該方法,并且這個方法
只會回調(diào)一次

     七,F(xiàn)ragment與Activity通信
           a, Fragment可調(diào)用getActivity()方法獲取它所在的 Activity()
           b, Activity可調(diào)用FragmentManager的findFragmentById()或
            findFragmentByTag()方法獲取Fragment

      七(一),從Activity向Fragment傳遞參數(shù)
                        在Activity中創(chuàng)建Bundle數(shù)據(jù)包,并調(diào)用Fragment的
                        setArguments(Bundle bundle)方法

       八(二),從Fragment向Activity傳遞參數(shù)

                       需要在Fragment中定義一個內(nèi)部接口, 再讓包含該Fragment的Activity實現(xiàn)該回調(diào)接口。這樣Fragment可調(diào)用該回調(diào)方法將數(shù)據(jù)傳遞給Activity
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容