[03]——認(rèn)識與簡單使用Fragment(碎片)

為什么要使用碎片F(xiàn)ragment

碎片的出現(xiàn)是為了能使一套布局適應(yīng)在不同大小尺寸的Android設(shè)備上,我們可以將Fragment理解為Activity上的一個個的碎片組成部分。

Fragment擁有自己的生命周期,并且可以接收、處理用戶的事件。而且我們還可以在程序運行時動態(tài)的添加、替換和移除某個Fragment。

創(chuàng)建與使用Fragment

首先需要在一個activity中設(shè)置一個布局作為主容器

在Activity中設(shè)置容器

在activity中使用FragmentManager來管理fragment,在管理器中使用beginTransaction()來開啟事務(wù),通過add()來添加具體事務(wù)(添加fragment),通過commit()來提交事務(wù)。


將Activity作為容器,載入一個Fragment

在按鈕事件中,使用FragmentManager中的replace()方法可以在容器中替換碎片


替換容器中的碎片F(xiàn)ragment

這種情況下,我們的Fragment與Activity共用返回棧,在fragment中返回將直接退出應(yīng)用,需要使用使用fragment模擬activity的返回棧,需要用到FragmentManager的方法addToBackStack(null),這樣在被激活的另一個Fragment中按下返回將會回到上一個這個Fragement

將Fragment加入返回棧

有時我們需要使用后退按鈕來退回到上一個Fragment,可以通過FragmentManagerpopBackStack()方法手動返回

手動返回


Fragment的生命周期

Fragemnt的生命周期

如圖所示是Fragment的生命周期,其中有很多函數(shù),但是我們常用的有三個

onCreate()、onCreateView()、onPause()

演示如下(轉(zhuǎn)自此處):

場景演示 : 切換到該Fragment

11-29 14:26:35.095: D/AppListFragment(7649): onAttach

11-29 14:26:35.095: D/AppListFragment(7649): onCreate

11-29 14:26:35.095: D/AppListFragment(7649): onCreateView

11-29 14:26:35.100: D/AppListFragment(7649): onActivityCreated

11-29 14:26:35.120: D/AppListFragment(7649): onStart

11-29 14:26:35.120: D/AppListFragment(7649): onResume

屏幕滅掉:

11-29 14:27:35.185: D/AppListFragment(7649): onPause

11-29 14:27:35.205: D/AppListFragment(7649): onSaveInstanceState

11-29 14:27:35.205: D/AppListFragment(7649): onStop

屏幕解鎖

11-29 14:33:13.240: D/AppListFragment(7649): onStart

11-29 14:33:13.275: D/AppListFragment(7649): onResume

切換到其他Fragment:

11-29 14:33:33.655: D/AppListFragment(7649): onPause

11-29 14:33:33.655: D/AppListFragment(7649): onStop

11-29 14:33:33.660: D/AppListFragment(7649): onDestroyView

切換回本身的Fragment:

11-29 14:33:55.820: D/AppListFragment(7649): onCreateView

11-29 14:33:55.825: D/AppListFragment(7649): onActivityCreated

11-29 14:33:55.825: D/AppListFragment(7649): onStart

11-29 14:33:55.825: D/AppListFragment(7649): onResume

回到桌面

11-29 14:34:26.590: D/AppListFragment(7649): onPause

11-29 14:34:26.880: D/AppListFragment(7649): onSaveInstanceState

11-29 14:34:26.880: D/AppListFragment(7649): onStop

回到應(yīng)用

11-29 14:36:51.940: D/AppListFragment(7649): onStart

11-29 14:36:51.940: D/AppListFragment(7649): onResume

退出應(yīng)用

11-29 14:37:03.020: D/AppListFragment(7649): onPause

11-29 14:37:03.155: D/AppListFragment(7649): onStop

11-29 14:37:03.155: D/AppListFragment(7649): onDestroyView

11-29 14:37:03.165: D/AppListFragment(7649): onDestroy

11-29 14:37:03.165: D/AppListFragment(7649): onDetach

最后編輯于
?著作權(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)容

  • Fragment 描述: ??翻譯可以譯為:碎片、片段,Android 3.0開始引入fragments 的概念;...
    Lost_Robot閱讀 1,940評論 0 11
  • 曾經(jīng)有一份美好的愛情放在我的面前我沒有珍惜。等到失去后才后悔莫及。如果可以再對小李說。毛欣想說。這輩子無緣再牽手。...
    毛欣與小李閱讀 3,337評論 0 13
  • 我面試過的問題匯總,不定期更新 坐標(biāo)問題 問題一般是如果獲取到view當(dāng)前的坐標(biāo),包括到parent或者到屏幕的距...
    doubimonkey閱讀 997評論 1 49
  • 嚴(yán)格意義講沙灘泳衣更應(yīng)該叫沙灘泳裝(歸到服裝一類) 特性:時尚,舒適,輕松,適合旅游度假時太陽眼鏡,黃金海灘,椰林...
    一個安靜的游泳教練閱讀 3,248評論 4 5
  • ——《龍鳳店》劇評 大約是一年前,我用手機看完了《龍鳳店》覺得挺好看的,當(dāng)然更重要的...
    夏目心葉閱讀 246評論 6 4

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