編輯:關於Android編程
Fragment必須總是被嵌入到一個Activity中,並且它的生命周期直接受宿主Activity生命周期的影響。
本文內容可以分為下面的幾部分:
使用支持庫
創建一個Fragment
創建一個動態UI
多個Fragment之間的通信
在一個Activity中,一個Fragment代表一種行為或者用戶界面的一部分。你可以聯合起來多個Fragment在一個Activity中創建多面板的UI,並且可以重用一個Fragment在多個activity中。你可以認為一個Fragment是一個Activity的一個模塊部分,Fragment有它自己的生命周期,響應他自己的輸入事件,並且你可以在Activity運行期間增加或者刪除一個Fragment。
1、使用支持庫
如果您的應用需要運行在3.0及以上的版本,可以忽略這部分內容。
如果您的應用使用在3.0以下、1.6及以上的版本,需要使用支持庫來構建。
使用支持庫的步驟:
1.使用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"/>
其中targetSdkVersion是您的軟件最小支持的版本
5.如果您的項目支持3.0以下的版本,請導入如下的包:android.support.v4.*;
在使用Fragment的Activity請繼承FragmentActivity而不是Activity。如果您的系統是3.0或以上版本,同樣需要導入類似的包,但是可以使用普通的Activity。
2、創建一個Fragment
Fragment支持在不同的Activity中使用並且可以處理自己的輸入事件以及生命周期方法等。可以看做是一個子Activity。
創建一個Fragment
創建一個Fragment和創建一個Activity很類似,繼承Fragment類,重寫生命周期方法,主要的不同之處就是需要重寫一個onCreateView()方法來返回這個Fragment的布局。例子:
Fragment的生命周期方法依賴於Activity的生命周期,例如一個Activity的onPause()的生命周期方法被調用的時候這個Activity中的所有的Fragment的onPause()方法也將被調用。
更多的內容請參照類Fragment。
使用XML添加Fragment到Activity
盡管Fragment可以被多個Activity重用,但是您也必須把Fragment關聯到一個FragmentActivity上。可以使用XML布局文件的方式來實現這種關聯。
說明:上面的所說的FragmentActivity適用在API在3.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中定義一個接口,然後再這個接口中定義一個方法,在Fragment的onAttach()方法中調用這個接口中的方法。然後讓Activity實現這個方法來完成Activity和Fragment之間的通信。例子:
定義接口並調用方法:
實現接口,在這個方法中可以進行與其他Fragment的數據的交互:
可以通過FragmentManager的findFragmentById()來查找一個Fragment。
以上內容就是小編給大家分享的Android 中 Fragment的使用大全,希望對大家有所幫助。
用到的知識點:1.Http 協議字段"Range", "bytes="+start+"-"+end2.Rand
Android Activity生命周期以及onSaveInstanceState、onRestoreInstanceState要點備忘 一般的,當
希望這篇文章能夠給大家帶來幫助廢話少說直接在COCOS2D-X自帶的HelloCpp中添加代碼如下: #if (CC_TARGET_PLATFORM == CC_PLA
1,講解build.gradle文件。1.1根目錄Android1.1.1defaultConfig是Android的根目錄,可以配置包名等信息,若AndroidMain