Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Developers:創建Fragment

Android Developers:創建Fragment

編輯:關於Android編程

你可以認為Fragment作為Activity的一個模塊部分,有它自己的生命周期,獲取它自己的事件,並且你可以在Activity運行的時候添加或者移除它(有點像你可以在不同的Activity中重用的一個”子Activity“)。這節課程講述如何使用Support Library繼承Fragment類,所以你的應用程序仍然是兼容運行的系統版本低於Android1.6的設備。    注意:如果你決定你的應用要求的最低的API級別是11或者更高,你不需要使用Support Library,反而能使用Frameword內的Fragment和相關API。要注意,這節課程主要講使用Support Library的API,它使用特殊的包名,並且有些時候和包含在平台中版本API的名稱略有不同。    在你開始這節課程之前,你必須配置你的Android項目使用Support Library。如果之前你沒有使用過Support Library,遵照Support Library Setup文檔,配置你的項目使用v4 Library。然而,你也能包含在你的Activity中Action Bar    創建Fragment類  —————————————————————————————————————————————————————————————  為了創建一個Fragment的一點不同是,你必須使用onCreareView()回掉方法來定義布局。事實上,這是為了運行一個Fragment你需要的唯一回調方法。例如,下面是一個簡單的Fragment,它指定了自己的布局:  [java]  import android.os.Bundle;    import android.support.v4.app.Fragment;    import android.view.LayoutInflater;    import android.view.ViewGroup;        public class ArticleFragment extends Fragment {        @Override        public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {            // Inflate the layout for this fragment            return inflater.inflate(R.layout.article_view, container, false);        }    } <span style="font-family:'Calibri Light',sans-serif; font-size:10pt; line-height:16px; background-color:transparent; color:windowtext"> </span>   和Activity一樣,Fragment應該實現其它的生命周期方法,來允許你在它從Activity中被添加或刪除的時候,和Activity在它的生命周期狀態之間轉換的時候,管理它的狀態。例如,當Activity的onPause()方法被調用,任何在這個Activity中的Fragment也調用onPause()。    使用XML向Activity中添加Fragment  —————————————————————————————————————————————  然而Fragment是可重用的,模塊化UI組建,Fragment類的每個實例必須和一個父FragmentActivity相關聯。你能通過在你的Activity的XML布局文件中定義每個Fragment,來完成這樣的關聯。    注意:FragmentActivity是Support Library中一個特殊的Activity,被提供來處理在系統版本小於API Level 11的Fragment。如果你支持的最低的系統版本是API Level 11或者更高,那麼你可以使用通常的Actvity。    這裡是示例布局文件,它向一個設備屏幕被認為是“large"的Activity中(在目錄名稱中通過large限定符指定),添加了兩個Fragment。    /res/layout-large/news_articles.xml  [html]  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:orientation="horizontal"        android:layout_width="fill_parent"        android:layout_height="fill_parent">            <fragment android:name="com.example.android.fragments.HeadlinesFragment"                  android:id="@+id/headlines_fragment"                  android:layout_weight="1"                  android:layout_width="0dp"                  android:layout_height="match_parent" />            <fragment android:name="com.example.android.fragments.ArticleFragment"                  android:id="@+id/article_fragment"                  android:layout_weight="2"                  android:layout_width="0dp"                  android:layout_height="match_parent" />   </LinearLayout>    提示:更多關於為不同大小屏幕創建  然後向你的Activity應用這個布局:  [java]   import android.os.Bundle;    import android.support.v4.app.FragmentActivity;        public class MainActivity extends FragmentActivity {        @Override        public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.news_articles);        }    }    如果你使用v7 appcompat library,你的Activity應該繼承ActionBarActivity,它是FragmentActivity的一個子類(更多信息查閱Adding the Action Bar)。    注意:當你通過在XML布局文件中定義Fragment的方式,向Activity布局中添加一個Fragment的時候,你不能在運行時移除這個Fragment。如果你計劃在用戶交互的時候移入和移除你的Fragment,你必須在Activity開始的時候向這個Activity中添加這個Fragment,如在下一節課程中所講的。 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved