Fragment生命週期 靜態載入 動態載入

2021-07-11 13:10:45 字數 2426 閱讀 2989

onattach–

oncreate–

oncreateview–

onactivitycreated–

onstart–

onresume–

onpause–

onstop–

ondestroyview–

ondestroy–

ondetach–

fragment的是依附於activity存在的,所以activity的生命週期會影響fragment的生命週期。下面是官網的一張圖:

當fragment依附在activity上時呼叫。

oncreateview():

fragment第一次繪製它的介面的時候呼叫,為了繪製frament的ui,此方法必須返回乙個view,如果不顯示ui,返回null即可。

onactivitycreated(bundle):

當activity的oncreate方法返回時呼叫。

ondestoryview():

當該fragment的檢視被移除時呼叫。

ondetach():

與onattach相對應,當fragment與activity解除關聯時呼叫

注意:除了oncreateview(),重寫其它的方法的時候必須呼叫父類對於該方法的實現。

在activity的layout檔案裡宣告fragment,需要特別注意的是中的android:name屬性指定了在layout中例項化的frament類

標識fragment的方法:(靜態載入必須給fragment乙個唯一的標識 id 或者 tag)

android:id 屬性提供乙個唯一id

android:tag 屬性提供乙個唯一的字串

例:

"@+id/fragment1"

//必須有

android:name="com.example.fragmenttest.myfragment"

//必須有 指定了在layout中例項化的frament類

android:layout_width="match_parent"

android:layout_height="wrap_content" />

寫**將fragmeng新增到乙個activity layout中,需要使用fragment事務。

add() :新增乙個fragment(指定要新增的fragment和要插入的view)

與此類似的還有remove() replace()

處理fragment的事務:

對fragment進行新增、移除、替換以及執行其他動作。提交給activity的每一套變化被稱作乙個事務

通過fragmentmanager可以開啟乙個事務

fragmentmanager fragmentmanager = getfragmentmanager();

fragmenttransaction begintransaction = fragmentmanager.begintransaction();

每乙個事務都是同時執行一套變化,可以再乙個事務中設定你所想執行的變化,包括add() 、remove()

replace() 然後通過commit()方法提交給activity執行

如果允許使用者通過按下back鍵返回到前乙個fragment狀態,可以在commit()提交之前通過

addtobackstack()方法將fragment新增到乙個返回棧裡去

例://新建乙個fragment

myfragment2 fragment2 = new myfragment2();

//例項化乙個fragmentmanager

fragmentmanager fragmentmanager = getfragmentmanager();

//開啟乙個事務

fragmenttransaction fragmenttransaction = fragmentmanager.begintransaction();

//新增fragment,

r.id.xx:需要將fragment新增到的控制項 一般是乙個framelayout,也就是包含這個fragment的控制項

fragment:要新增的fragment物件

fragmenttransaction.add(r.id.fragmentcontainer, fragment2);

//將fragment加入到返回棧

fragmenttransaction.addtobackstack(null);

//提交事務

fragmenttransaction.commit();

參考部落格:

Fragment生命週期

onattach 當碎片依附活動的時候被呼叫 oncreate 活動被建立 oncreateview 為碎片建立view,載入布局時呼叫 onactivitycreated 確保view已經被建立完畢時呼叫 onstart 活動被開啟,由不可見變為可見 onresume 活動已經準備好和使用者進行互...

Fragment生命週期

與activity類似,碎片有自己的生命週期。當碎片被建立時,會經歷 onattach oncreate oncreateview onactivitycreated 當碎片變得可見時,會經歷 onstart onresume 當碎片進入後台模式時,會經歷 onpause onstop 當碎片被銷毀...

理解Fragment生命週期

主要看兩張圖,和跑 一,fragment的生命周 二,與activity生命週期的對比 場景演示 切換到該fragment 螢幕滅掉 螢幕解鎖 切換回本身的fragment 回到桌面 回到應用 退出應用 1.當乙個fragment被建立的時候,它會經歷以下狀態.onattach oncreate o...