Android Fragment的使用方法(翻譯)
可以分為下面的幾部分:
使用支持庫(kù)
創(chuàng)建一個(gè)Fragment
創(chuàng)建一個(gè)動(dòng)態(tài)UI
多個(gè)Fragment之間的通信
1、使用支持庫(kù)
如果您的應(yīng)用需要運(yùn)行在3.0及以上的版本,可以忽略這部分內(nèi)容。
如果您的應(yīng)用使用在3.0以下、1.6及以上的版本,需要使用支持庫(kù)來(lái)構(gòu)建。
使用支持庫(kù)的步驟:
使用SDK下的SDK Manager工具下載Android Support Package
2. 在您的Android工程的頂級(jí)目錄下創(chuàng)建一個(gè)libs目錄
3. 找到您的SDK下的/extras/android/support/v4/android-support-v4.jar,并且拷貝到您的項(xiàng)目的libs下,選中這個(gè)jar包 → 右鍵 → Build Path → Add to Build Path
4.在您的項(xiàng)目的
Manifest.xml
文件的
<manifest>
標(biāo)簽下添加:
<
uses-sdk
android:minSdkVersion
=
"4"
android:targetSdkVersion="8"/>
其中
targetSdkVersion
是您的軟件最小支持的版本
5.如果您的項(xiàng)目支持3.0以下的版本,請(qǐng)導(dǎo)入如下的包:android.support.v4.*;
在使用Fragment的Activity請(qǐng)繼承FragmentActivity而不是Activity。如果您的系統(tǒng)是3.0或以上版本,同樣需要導(dǎo)入類似的包,但是可以使用普通的Activity。
2、創(chuàng)建一個(gè)Fragment
Fragment支持在不同的Activity中使用并且可以處理自己的輸入事件以及生命周期方法等。可以看做是一個(gè)子Activity。
創(chuàng)建一個(gè)Fragment
創(chuàng)建一個(gè)Fragment和創(chuàng)建一個(gè)Activity很類似,繼承Fragment類,重寫生命周期方法,主要的不同之處就是需要重寫一個(gè)onCreateView()方法來(lái)返回這個(gè)Fragment的布局。例子:
Fragment的生命周期方法依賴于Activity的生命周期,例如一個(gè)Activity的onPause()的生命周期方法被調(diào)用的時(shí)候這個(gè)Activity中的所有的Fragment的onPause()方法也將被調(diào)用。
更多的內(nèi)容請(qǐng)參照類Fragment。
使用XML添加Fragment到Activity
盡管Fragment可以被多個(gè)Activity重用,但是您也必須把Fragment關(guān)聯(lián)到一個(gè)FragmentActivity上??梢允褂肵ML布局文件的方式來(lái)實(shí)現(xiàn)這種關(guān)聯(lián)。
說(shuō)明:上面的所說(shuō)的FragmentActivity適用在API在3.0以下的版本,3.0及以上的版本可以使用普通的Activity。
例子:
上面使用fragment標(biāo)簽,android:name=””指定一個(gè)添加到xml中的Fragment。對(duì)于創(chuàng)建不同的屏幕尺寸布局的更多信息,請(qǐng)閱讀支持不同的屏幕尺寸。
當(dāng)您添加一個(gè)片段一個(gè)活動(dòng)布局定義的布局XML文件中的片段,你不能刪除在運(yùn)行時(shí)的片段。如果您打算在用戶交互和交換片段,你必須添加的活性片段的活動(dòng)時(shí)第一次啟動(dòng)。
3、構(gòu)建一個(gè)靈活的UI
FragmentManager提供了對(duì)Activity運(yùn)行時(shí)的Fragment的添加、刪除、替換的操作。
在Activity運(yùn)行期間你可以添加Fragment而不是在XML布局文件中進(jìn)行定義。如果你打算在Activity中改變Fragment的生命過(guò)程。
如果要執(zhí)行添加、刪除、修改的操作,你必須通過(guò)FragmentManager的對(duì)象獲得一個(gè)FragmentTransaction對(duì)象,通過(guò)它的API來(lái)執(zhí)行這些操作。
添加一個(gè)Fragment到一個(gè)Activity,必須把這個(gè)Fragment添加到一個(gè)容器視圖中。例子:
在Activity中你可以通過(guò)getFragmentManager()來(lái)獲得Fragment對(duì)象,然后通過(guò)FragmentManager對(duì)象的beginFragmentTransaction()方法來(lái)獲得FragmentTransaction對(duì)象。通過(guò)它的add()方法來(lái)添加一個(gè)Fragment到當(dāng)前的Activity中。
一個(gè)FragmentTransaction對(duì)象可以執(zhí)行多個(gè)增刪修的方法,如果你想把這些修改提交到Activity上,必須在最后調(diào)用一下這個(gè)對(duì)象的commit()方法。例子:
由于不是定義在XML布局中的,所有可以轉(zhuǎn)型刪除和修改的操作。
如果替換或者刪除一個(gè)Fragment然后讓用戶可以導(dǎo)航到上一個(gè)Fragment,你必須在調(diào)用commit()方法之前調(diào)用addToBackStack()方法添加到回退棧。如果你把這個(gè)Fragment添加到了回退棧,在提交之后這個(gè)Fragment是會(huì)被Stop而不是Destroyed。如果用戶導(dǎo)航到這個(gè)Fragment,這個(gè)Fragment會(huì)被Restart而不是重新創(chuàng)建。如果你沒(méi)有把它添加到回退棧,則在刪除或者替換的時(shí)候它將被Destroyed。例子:
4、與其他Fragment的交互
兩個(gè)單獨(dú)的Fragment之間是不應(yīng)該進(jìn)行通信的。應(yīng)該使用他們所存在的Activity作為溝通的紐帶。
為了實(shí)現(xiàn)兩個(gè)Fragment的交互,您可以在Fragment中定義一個(gè)接口,然后再這個(gè)接口中定義一個(gè)方法,在Fragment的onAttach()方法中調(diào)用這個(gè)接口中的方法。然后讓Activity實(shí)現(xiàn)這個(gè)方法來(lái)完成Activity和Fragment之間的通信。例子:
定義接口并調(diào)用方法:
實(shí)現(xiàn)接口,在這個(gè)方法中可以進(jìn)行與其他Fragment的數(shù)據(jù)的交互:
可以通過(guò)FragmentManager的findFragmentById()來(lái)查找一個(gè)Fragment。
- Android中使用DialogFragment編寫對(duì)話框的實(shí)例教程
- Android應(yīng)用UI開(kāi)發(fā)中Fragment的常見(jiàn)用法小結(jié)
- 深入淺析Android Fragment(下篇)
- 深入淺析 Android Fragment(上篇)
- Android App中ViewPager與Fragment結(jié)合的一些問(wèn)題解決
- Android中Fragment與Activity的生命周期對(duì)比
- Android 中 Fragment的使用大全
- Android中使用TabHost 與 Fragment 制作頁(yè)面切換效果
- Android中Fragment的生命周期與返回棧的管理
- 詳解Android應(yīng)用中DialogFragment的基本用法
相關(guān)文章
Android打包篇:Android Studio將代碼打包成jar包教程
這篇文章主要介紹了Android打包篇:Android Studio將代碼打包成jar包教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android TextView漸變顏色和方向及動(dòng)畫效果的設(shè)置詳解
TextView的在安卓中可以理解為一個(gè)文本視圖控件,Android的視圖控件的基類是View類,可以理解的TextView是View的子類。我們通常在.XML布局文件中會(huì)為文本視圖控件指定各種屬性來(lái)設(shè)置它的樣式,今天我們要講的當(dāng)然不是傳統(tǒng)常見(jiàn)的那種,將會(huì)帶有漸變顏色和方向及動(dòng)畫效果2021-11-11Android編程實(shí)現(xiàn)自定義Tab選項(xiàng)卡功能示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)自定義Tab選項(xiàng)卡功能,結(jié)合完整實(shí)例形式分析了Android自定義tab選項(xiàng)卡的遍歷、設(shè)置及屬性操作相關(guān)技巧,需要的朋友可以參考下2017-02-02Android中Activity的四種啟動(dòng)模式和onNewIntent()
android 中activity的啟動(dòng)模式分為四種,(standard、singleTop、singTask、singleInstance),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-08-08Android中Activity滑動(dòng)關(guān)閉的效果
這篇文章主要介紹了Android中Activity滑動(dòng)關(guān)閉的效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05Flutter開(kāi)發(fā)setState能否在build中直接調(diào)用詳解
這篇文章主要為大家介紹了Flutter開(kāi)發(fā)setState能否在build中直接調(diào)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Android 游戲開(kāi)發(fā)中繪制游戲觸摸軌跡的曲線圖
本文主要介紹 Android 繪制游戲觸摸軌跡的曲線圖的簡(jiǎn)單示例,這里詳細(xì)說(shuō)明使用方法,并附示例代碼,有需要的小伙伴可以參考下2016-08-08Android開(kāi)發(fā)中Toast顯示消息的方法小結(jié)
這篇文章主要介紹了Android開(kāi)發(fā)中Toast顯示消息的方法,結(jié)合實(shí)例形式總結(jié)分析了Toast的功能、創(chuàng)建Toast對(duì)象及調(diào)用相關(guān)函數(shù)顯示消息提示框的操作技巧,需要的朋友可以參考下2016-10-10