Android Fragment的使用(1)

來源:互聯網
上載者:User

可以分為下面的幾部分:

    • 使用支援庫

    • 建立一個Fragment

    • 建立一個動態UI

    • 多個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添加FragmentActivity

    儘管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。

     

     

     

     

     

     

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.