Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 如何使用Android Fragment

如何使用Android Fragment

編輯:關於android開發

       fragment通常是宿主Activity UI的一部分,被作為activity整個view hierarchy的一部分被嵌入。添加fragmet到activity Layout有兩種方法。如下所述。

       一、在Activity的Layout文件中聲明fragment

       你可以像為View一樣,為fragment指定layout屬性(sdk3.0以後)。

       例子是一個有2個fragment的activity:

XML/HTML代碼
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="horizontal"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent">  
  6.      <fragment android:name="com.example.news.ArticleListFragment"  
  7.             android:id="@+id/list"  
  8.             android:layout_weight="1"  
  9.             android:layout_width="0dp"  
  10.             android:layout_height="match_parent" />  
  11.      <fragment android:name="com.example.news.ArticleReaderFragment"  
  12.             android:id="@+id/viewer"  
  13.             android:layout_weight="2"  
  14.             android:layout_width="0dp"  
  15.             android:layout_height="match_parent" />  
  16.   </LinearLayout>  

       <fragment> 中的 android:name 屬性指定了在layout中實例化的Fragment類。

       當系統創建這個activity layout時,它實例化每一個在layout中指定的fragment,並調用每一個上的onCreateView()方法,來獲取每一個fragment的layout。系統將從fragment返回的 View 直接插入到<fragment>元素所在的地方。

       注意:每一個fragment都需要一個唯一的標識,如果activity重啟,系統可以用來恢復fragment(並且你也可以用來捕獲fragment來處理事務,例如移除它)。

       有3種方法來為一個fragment提供一個標識:

       為 android:id 屬性提供一個唯一ID;

       為 android:tag 屬性提供一個唯一字符串;

       如果以上2個你都沒有提供,系統使用容器view的ID。

       二、使用FragmentManager將fragment添加到一個已存在的ViewGroup

       當activity運行的任何時候,都可以將fragment添加到activity layout。只需簡單的指定一個需要放置fragment的ViewGroup。為了在你的activity中操作fragment事務(例如添加、移除,或代替一個fragment),必須使用來自 FragmentTransaction 的API。

       可以按如下方法,從你的Activity取得一個FragmentTransaction 的實例:

Java代碼
  1. FragmentManager fragmentManager = getFragmentManager();    
  2. FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();  

       然後你可以使用 add() 方法添加一個fragment,指定要添加的fragment和要插入的view。

Java代碼
  1. ExampleFragment fragment = new ExampleFragment();   
  2. fragmentTransaction.add(R.id.fragment_container, fragment);    
  3. fragmentTransaction.commit();  

       add()的第一個參數是fragment要放入的ViewGroup,由resource ID指定。第二個參數是需要添加的fragment。一旦用FragmentTransaction做了改變,為了使改變生效,必須調用commit()。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved