Android Fragment的使用

能夠分爲下面的幾部分:android

    • 使用支持庫工具

    • 建立一個Fragment佈局

    • 建立一個動態UIui

    • 多個Fragment之間的通訊spa

 

1、使用支持庫

若是您的應用須要運行在3.0及以上的版本,能夠忽略這部份內容。code

若是您的應用使用在3.0如下、1.6及以上的版本,須要使用支持庫來構建。xml

使用支持庫的步驟:對象

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

 2. 在您的Android工程的頂級目錄下建立一個libs目錄接口

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

4.在您的項目的Manifest.xml文件的<manifest>標籤下添加:

<uses-sdkandroid:minSdkVersion="4"

  android:targetSdkVersion="8"/>

5.若是您的項目支持3.0如下的版本,請導入以下的包:android.support.v4.*;

在使用FragmentActivity請繼承FragmentActivity而不是Activity。若是您的系統是3.0或以上版本,一樣須要導入相似的包,可是可使用普通的Activity。 

  

2、建立一個Fragment

Fragment支持在不一樣的Activity中使用而且能夠處理本身的輸入事件以及生命週期方法等。能夠看作是一個子Activity

建立一個Fragment

建立一個Fragment和建立一個Activity很相似,繼承Fragment類,重寫生命週期方法,主要的不一樣之處就是須要重寫一個onCreateView()方法來返回這個Fragment的佈局。例子:

 

  

Fragment的生命週期方法依賴於Activity的生命週期,例如一個ActivityonPause()的生命週期方法被調用的時候這個Activity中的全部的FragmentonPause()方法也將被調用。

 

更多的內容請參照類Fragment

使用XML添加FragmentActivity

儘管Fragment能夠被多個Activity重用,可是您也必須把Fragment關聯到一個FragmentActivity上。可使用XML佈局文件的方式來實現這種關聯。

說明:上面的所說的FragmentActivity適用在API3.0如下的版本,3.0及以上的版本可使用普通的Activity

例子:

  

上面使用fragment標籤,android:name=」」指定一個添加到xml中的Fragment。對於建立不一樣的屏幕尺寸佈局的更多信息,請閱讀支持不一樣的屏幕尺寸。

 

 

  

當您添加一個片斷一個活動佈局定義的佈局XML文件中的片斷,你不能刪除在運行時的片斷。若是您打算在用戶交互和交換片斷,你必須添加的活性片斷的活動時第一次啓動。

 

3、構建一個靈活的UI

 

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

 

Activity運行期間你能夠添加Fragment而不是在XML佈局文件中進行定義。若是你打算在Activity中改變Fragment的生命過程。

 

若是要執行添加、刪除、修改的操做,你必須經過FragmentManager的對象得到一個FragmentTransaction對象,經過它的API來執行這些操做。

 

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

 

Activity中你能夠經過getFragmentManager()來得到Fragment對象,而後經過FragmentManager對象的beginFragmentTransaction()方法來得到FragmentTransaction對象。經過它的add()方法來添加一個Fragment到當前的Activity中。

一個FragmentTransaction對象能夠執行多個增刪修的方法,若是你想把這些修改提交到Activity上,必須在最後調用一下這個對象的commit()方法。例子:

 

  

因爲不是定義在XML佈局中的,全部能夠轉型刪除和修改的操做。

若是替換或者刪除一個Fragment而後讓用戶能夠導航到上一個Fragment,你必須在調用commit()方法以前調用addToBackStack()方法添加到回退棧。若是你把這個Fragment添加到了回退棧,在提交以後這個Fragment是會被Stop而不是Destroyed。若是用戶導航到這個Fragment,這個Fragment會被Restart而不是從新建立。若是你沒有把它添加到回退棧,則在刪除或者替換的時候它將被Destroyed。例子:

  

4、與其餘Fragment的交互

兩個單獨的Fragment之間是不該該進行通訊的。應該使用他們所存在的Activity做爲溝通的紐帶。

爲了實現兩個Fragment的交互,您能夠在Fragment中定義一個接口,而後再這個接口中定義一個方法,在FragmentonAttach()方法中調用這個接口中的方法。而後讓Activity實現這個方法來完成ActivityFragment之間的通訊。例子:

定義接口並調用方法:

 

  

實現接口,在這個方法中能夠進行與其餘Fragment的數據的交互:

  

能夠經過FragmentManagerfindFragmentById()來查找一個Fragment

 

相關文章
相關標籤/搜索