a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統(tǒng) > Android > 正文

Android Fragment的使用方法(翻譯)

2020-04-11 11:39:18
字體:
供稿:網(wǎng)友

可以分為下面的幾部分:

使用支持庫

創(chuàng)建一個Fragment

創(chuàng)建一個動態(tài)UI

多個Fragment之間的通信

 

1、使用支持庫

如果您的應(yīng)用需要運行在3.0及以上的版本,可以忽略這部分內(nèi)容。

如果您的應(yīng)用使用在3.0以下、1.6及以上的版本,需要使用支持庫來構(gòu)建。

使用支持庫的步驟:

使用SDK下的SDK Manager工具下載Android Support Package

 2. 在您的Android工程的頂級目錄下創(chuàng)建一個libs目錄

3. 找到您的SDK下的/extras/android/support/v4/android-support-v4.jar,并且拷貝到您的項目的libs下,選中這個jar包 → 右鍵 → Build Path → Add to Build Path

4.在您的項目的Manifest.xml文件的<manifest>標(biāo)簽下添加:

<uses-sdkandroid:minSdkVersion="4"

  android:targetSdkVersion="8"/>

  其中targetSdkVersion是您的軟件最小支持的版本

5.如果您的項目支持3.0以下的版本,請導(dǎo)入如下的包:android.support.v4.*;

在使用Fragment的Activity請繼承FragmentActivity而不是Activity。如果您的系統(tǒng)是3.0或以上版本,同樣需要導(dǎo)入類似的包,但是可以使用普通的Activity。 

  

2、創(chuàng)建一個Fragment

Fragment支持在不同的Activity中使用并且可以處理自己的輸入事件以及生命周期方法等。可以看做是一個子Activity。

創(chuàng)建一個Fragment

創(chuàng)建一個Fragment和創(chuàng)建一個Activity很類似,繼承Fragment類,重寫生命周期方法,主要的不同之處就是需要重寫一個onCreateView()方法來返回這個Fragment的布局。例子:

 

  

Fragment的生命周期方法依賴于Activity的生命周期,例如一個Activity的onPause()的生命周期方法被調(diào)用的時候這個Activity中的所有的Fragment的onPause()方法也將被調(diào)用。

 

更多的內(nèi)容請參照類Fragment。

使用XML添加FragmentActivity

盡管Fragment可以被多個Activity重用,但是您也必須把Fragment關(guān)聯(lián)到一個FragmentActivity上。可以使用XML布局文件的方式來實現(xiàn)這種關(guān)聯(lián)。

說明:上面的所說的FragmentActivity適用在API在3.0以下的版本,3.0及以上的版本可以使用普通的Activity。

例子:

  

上面使用fragment標(biāo)簽,android:name=””指定一個添加到xml中的Fragment。對于創(chuàng)建不同的屏幕尺寸布局的更多信息,請閱讀支持不同的屏幕尺寸。

 

 

  

當(dāng)您添加一個片段一個活動布局定義的布局XML文件中的片段,你不能刪除在運行時的片段。如果您打算在用戶交互和交換片段,你必須添加的活性片段的活動時第一次啟動。

 

3、構(gòu)建一個靈活的UI

 

FragmentManager提供了對Activity運行時的Fragment的添加、刪除、替換的操作。

 

在Activity運行期間你可以添加Fragment而不是在XML布局文件中進(jìn)行定義。如果你打算在Activity中改變Fragment的生命過程。

 

如果要執(zhí)行添加、刪除、修改的操作,你必須通過FragmentManager的對象獲得一個FragmentTransaction對象,通過它的API來執(zhí)行這些操作。

 

添加一個Fragment到一個Activity,必須把這個Fragment添加到一個容器視圖中。例子:

 

在Activity中你可以通過getFragmentManager()來獲得Fragment對象,然后通過FragmentManager對象的beginFragmentTransaction()方法來獲得FragmentTransaction對象。通過它的add()方法來添加一個Fragment到當(dāng)前的Activity中。

一個FragmentTransaction對象可以執(zhí)行多個增刪修的方法,如果你想把這些修改提交到Activity上,必須在最后調(diào)用一下這個對象的commit()方法。例子:

 

  

由于不是定義在XML布局中的,所有可以轉(zhuǎn)型刪除和修改的操作。

如果替換或者刪除一個Fragment然后讓用戶可以導(dǎo)航到上一個Fragment,你必須在調(diào)用commit()方法之前調(diào)用addToBackStack()方法添加到回退棧。如果你把這個Fragment添加到了回退棧,在提交之后這個Fragment是會被Stop而不是Destroyed。如果用戶導(dǎo)航到這個Fragment,這個Fragment會被Restart而不是重新創(chuàng)建。如果你沒有把它添加到回退棧,則在刪除或者替換的時候它將被Destroyed。例子:

  

4、與其他Fragment的交互

兩個單獨的Fragment之間是不應(yīng)該進(jìn)行通信的。應(yīng)該使用他們所存在的Activity作為溝通的紐帶。

為了實現(xiàn)兩個Fragment的交互,您可以在Fragment中定義一個接口,然后再這個接口中定義一個方法,在Fragment的onAttach()方法中調(diào)用這個接口中的方法。然后讓Activity實現(xiàn)這個方法來完成Activity和Fragment之間的通信。例子:

定義接口并調(diào)用方法:

 

  

實現(xiàn)接口,在這個方法中可以進(jìn)行與其他Fragment的數(shù)據(jù)的交互:

  

可以通過FragmentManager的findFragmentById()來查找一個Fragment。

 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 婷婷网址| 青青草原国产在线观看 | 欧美精品色网 | 日本视频免费高清一本18 | 国产日韩在线视频 | 精品国产91亚洲一区二区三区www | 久久久a| 国产精品丰满对白在线观看 | 久久久久国产精品视频 | 免费福利视频一区 | 欧美日韩一二 | 国产日韩一区二区 | 久久国产精品99精国产 | 亚洲综合首页 | 亚洲国产精品久久久久秋霞不卡 | 欧美精品一区二区免费 | 亚洲天堂免费 | 一本一道久久a久久精品综合蜜臀 | 在线视频福利 | 中文字幕成人 | 国产综合久久久久久鬼色 | 一本一道久久a久久精品综合蜜臀 | 色综合久久88色综合天天 | 精品国产一区二区三区性色av | 欧美aⅴ | 亚洲免费视频网址 | 国产高清精品一区 | 超碰在线观看97 | 中文字幕欧美日韩一区 | 韩国精品主播一区二区在线观看 | а天堂中文最新一区二区三区 | 免费看男女www网站入口在线 | 久草在线2| 国产精品一区二区三区在线 | 亚洲综合视频一区 | 亚洲一区精品视频 | 91中文字幕 | 国产精品久久久久久久久免费 | 美女131mm久久爽爽免费 | 亚洲精品二区三区 | 成人乱淫av日日摸夜夜爽节目 |