溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android 碎片(Fragment)講解

發(fā)布時(shí)間:2020-08-11 17:22:19 來源:ITPUB博客 閱讀:184 作者:大雄45 欄目:編程語言
導(dǎo)讀 安卓(Android)是一種基于 Linux的自由及開放源代碼的操作系統(tǒng)。主要使用于移動設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。

Android 碎片(Fragment)講解
碎片是活動的一部分,使得活動更加的模塊化設(shè)計(jì)。我們可以認(rèn)為碎片是一種子活動。

下面是關(guān)于碎片的重要知識點(diǎn) -

  • 碎片擁有自己的布局,自己的行為及自己的生命周期回調(diào)。
  • 當(dāng)活動在運(yùn)行的時(shí)候,你可以在活動中添加或者移除碎片。
  • 你可以合并多個(gè)碎片在一個(gè)單一的活動中來構(gòu)建多欄的UI。
  • 碎片可以被用在多個(gè)活動中。
  • 碎片的生命周期和它的宿主活動緊密關(guān)聯(lián)。這意味著活動被暫停,所有活動中的碎片被停止。
  • 碎片可以實(shí)現(xiàn)行為而沒有用戶界面組件。
  • 碎片是 Android API 版本11中被加入到 Android API。
  • 通過繼承 Fragment 類來創(chuàng)建碎片??梢酝ㄟ^使用 元素在活動的布局文件中聲明碎片來在你的活動中插入碎片。

    在引入碎片之前,由于每次給定的一個(gè)時(shí)間點(diǎn)在屏幕上只能顯示單一的活動,因此我們有一個(gè)局限。我們無法分割設(shè)備屏幕并且獨(dú)立的控制不同的部分。伴隨著碎片的引入,我們獲得了更大的靈活性,并使得一個(gè)時(shí)間點(diǎn)只能在屏幕上有一個(gè)單一活動的限制被移除?,F(xiàn)在我們可以有單一的活動,但每個(gè)活動由多個(gè)碎片組裝,每個(gè)碎片有自己的布局,事件和完整的生命周期。

    下面是一個(gè)典型的示例演示如何讓兩個(gè)由碎片定義的UI模塊,在為平板設(shè)計(jì)的活動中組合,在為手持設(shè)備設(shè)計(jì)的活動中分離。
    Android 碎片(Fragment)講解
    當(dāng)運(yùn)行在在平板尺寸的設(shè)備上,這個(gè)應(yīng)用程序可以在活動A中嵌入兩個(gè)碎片。在手機(jī)設(shè)備屏幕上,由于沒有足夠的空間,活動A僅包含有文章列表的碎片,當(dāng)用戶點(diǎn)擊文章時(shí),啟動包含第二個(gè)碎片的活動B來閱讀文章。

    碎片的生命周期

    Android 的碎片擁有自己的生命周期,與 Android 的活動很相似。下面簡單介紹它生命周期的不同階段。
    Android 碎片(Fragment)講解
    這是在類fragment中你可以重寫的方法列表:

  • onAttach(): 碎片實(shí)例被關(guān)聯(lián)到活動實(shí)例。碎片和活動還沒有完全初始化。通常,你在該方法中獲取到活動的引用,在碎片將來的初始化工作中被使用。
  • onCreate(): 當(dāng)創(chuàng)建碎片時(shí),系統(tǒng)調(diào)用該方法。你需要初始化一些碎片的必要組件。這些組件是當(dāng)碎片被暫停、停止時(shí)需要保留的,以便被恢復(fù)。
  • onCreateView(): 當(dāng)碎片將要第一次繪制它的用戶界面時(shí)系統(tǒng)調(diào)用該方法。為了繪制碎片的UI,你需要從該方法中返回一個(gè)代表碎片根布局的View組件。如果該碎片不提供用戶界面,直接返回null。
  • onActivityCreated: 當(dāng)宿主活動被創(chuàng)建,在onCreateView()方法之后調(diào)用該方法?;顒雍退槠瑢?shí)例與活動的視圖層級被創(chuàng)建。這時(shí),視圖可以通過findViewById()方法來訪問。在這個(gè)方法中,你可以實(shí)例化需要Context對象的對象。
  • onStart(): 碎片可見時(shí)調(diào)用該方法。
  • onResume(): 碎片可交互時(shí)調(diào)用該方法。
  • onPause(): 當(dāng)首次表明用戶將要離開碎片時(shí)系統(tǒng)調(diào)用該方法。通常,這里你需要提交任何的會超出用戶會話的持久化的變化。
  • onStop(): 碎片將要被停止時(shí)調(diào)用。
  • onDestroyView(): 調(diào)用該方法后,碎片將要被銷毀。
  • onDestroy(): 該方法被用來清理碎片的狀態(tài)。但在Android平臺并不保證一定被調(diào)用。
  • 如何使用碎片?

    這里介紹創(chuàng)建碎片的簡單步驟。

  • 首先決定在活動中需要使用多少個(gè)碎片。例如,我們需要使用兩個(gè)碎片來處理設(shè)備的橫屏和豎屏兩種模式。
  • 下一步,基于碎片數(shù)量,創(chuàng)建繼承自類Fragment的類。類Fragment包含上面提到的回調(diào)函數(shù)。根據(jù)你的需求重寫任意的方法。
  • 對應(yīng)每個(gè)片段,你需要在XML文件中創(chuàng)建布局。這些文件中包含已定義的碎片的布局。
  • 最后,基于需求修改活動文件來定義實(shí)際的碎片替換邏輯。
  • 碎片類型

    基本的碎片可以分為如下所示的三種:

  • 單幀碎片 - 單幀碎片被如移動電話之類的手持設(shè)備使用。一個(gè)碎片如同一個(gè)視頻一樣顯示。
  • 列表碎片 - 包含有特殊列表視圖的碎片被叫做列表碎片。
  • 碎片過渡 - 與碎片事務(wù)一起使用??梢詮囊粋€(gè)碎片移動到另外一個(gè)碎片。
  • 原文來自:  https://www.linuxprobe.com/android-fragment-explained.html

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI