**碎片**
碎片可看作另外一種形式的活動,可以創建碎片來包含視圖。
碎片總是嵌入在活動中,一般有兩種常見形式:
1、碎片A和碎片B分別處于不同的活動中,當選擇碎片A中的某一項時,觸發碎片B啟動;
2、碎片A和碎片B處于同一個活動中,共享同一活動,以創建更佳的用戶體驗。
[點此下載完整源碼~](http://download.csdn.net/detail/u012904198/7327509)**(代碼適用于本文章所講)**
1、創建一個名為“Fragments”的項目,在res/layout文件夾下,分別新建fragment1.xml、fragment2.xml;在當前包名下,分別新建Fragment1.java、Fragment2.java:
fragment1.xml:
~~~
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00FF00"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is fragment #1"
android:textColor="#000000"
android:textSize="25sp" />
</LinearLayout>
~~~
fragment2.xml:
~~~
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFE00"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is fragment #2"
android:textColor="#000000"
android:textSize="25sp" />
</LinearLayout>
~~~
Fragment1.java:
~~~
package net.zenail.fragments;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment1 extends Fragment {// 繼承Fragment基類
// 繪制碎片UI:使用一個LayoutInflauter對象來增大指定XML文件中的UI。container參數引用父ViewGroup,準備用于嵌入碎片的活動。
// savedInstanceState參數允許將碎片還原到前一次保存的狀態。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.fragment1, container, false);
}
}
~~~
Fragment2.java:
~~~
package net.zenail.fragments;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.fragment2, container, false);
}
}
~~~
2、在main.xml文件中添加兩個碎片:
~~~
<fragment
android:id="@+id/fragment1"
android:name="net.zenail.fragments.Fragment1"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="1"
tools:layout="@layout/fragment1" />
<fragment
android:id="@+id/fragment2"
android:name="net.zenail.fragments.Fragment2"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="1"
tools:layout="@layout/fragment2" />
~~~
3、運行,效果如下:

- 前言
- Android應用程序剖析
- (一)——生命周期
- (二)——使用Intent傳數據之通用方式
- (三)——使用靜態變量傳遞數據
- (四)——通過剪切板傳遞數據
- (五)——通過全局變量傳遞數據
- (六)——從Activity返回數據
- adt-bundle-linux-x86_64-20131030下新建工程提示找不到adb和R.java問題的解決
- Eclipse啟動時提示fail to create the Java Virtual Machine問題的解決
- Android常見UI組件之ListView(一)
- Android常見UI組件之ListView(二)——定制ListView
- (七)——顯示對話框窗口
- (八)——顯示進度對話框
- (九)——更復雜的進度對話框
- (十)——使用意圖鏈接活動
- (十一)——從意圖返回結果
- (十二)——使用意圖傳遞數據的幾種方式
- (十三)——碎片(一)
- (十四)——在運行時添加碎片(附源碼)
- (十五)——碎片的生命周期(附源碼)
- (十六)——碎片之間進行交互(附源碼)
- (十七)——使用意圖調用內置應用程序
- (十八)——使用意圖篩選器和實現瀏覽網頁(附源碼)