Fragment總結(jié)

Fragment

  • Fragment結(jié)構(gòu)

    • 活動布局中的FragmentLayout(布局)容器
    • Fragment的子布局。
    • Fragment類。
  • 一般添加和替換碎片都是在FragmentLayout(布局)容器中。

  • 靜態(tài)加載碎片時(shí)呢,一定要用V4包里的,避免出現(xiàn)Fragment加載錯(cuò)誤。

  • 如果在同一次事務(wù)添加了多個(gè)Fragment呢,顯示的次序同添加次序一致。add()添加碎片后就默認(rèn)顯示,如一次向同一容器添加多個(gè)碎片了,就得hide()不顯示的Fragment。

  • 一個(gè)事務(wù)對象呢,只支持一次提交。

  • 調(diào)用FragmentManager.add()添加Fragment時(shí),可通過參數(shù)傳入此次行為的日志名。調(diào)用findFragmentByTag(),傳入日志名就能獲取添加的碎片。

  • hide()方法僅是隱藏視圖,detach()方法是銷毀視圖,最后通過show()方法都能顯示出來。

  • 可調(diào)用FragmentManager對象的findFragmentById(),findFragmentByTag(),獲取到activity的返回棧中存在的Fragment。

  • Fragment 分別在app包和V4包都有,但兩者兼容的最低版本不同,app包里的最低兼容 android 3.o版本,V4包里的最低兼容 android 1.6版。一般使用V4包里的就好,相應(yīng)的創(chuàng)建FragmentManager對象時(shí),也就只能調(diào)用V4包里的方法創(chuàng)建了,getSupportFragmentManager()。

    • 事務(wù)就是同一時(shí)刻呢執(zhí)行一組動作。
    • 向activity中添加Fragment,都要取得一個(gè)FragmentTransaction的實(shí)例,其中就可以對Fragment進(jìn)行add,remove,replace。在調(diào)用commit()前,執(zhí)行了addToBackStack(),事務(wù)就會添加到返回棧中。當(dāng)用戶按下返回鍵時(shí)呢,事務(wù)的所以動作都會反向執(zhí)行(事務(wù)回溯)。
    • 但如沒有執(zhí)行addToBackStack()呢,被刪除的Frgament就會被銷毀,而不是進(jìn)入停止?fàn)顟B(tài)。當(dāng)按下返回鍵時(shí)呢此Fragment不會被恢復(fù)。就是回到返回棧保存事務(wù)之前的狀態(tài)。
  • 以下此圖是Fragment的完整生命周期。

碎片生命周期
碎片生命周期
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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