android Fragment入門

Fragment是android3.0引入的,為什麼google推出Fragment呢?主要目的是用在大屏幕設備上–例如平板電腦上,支持更加動態和靈活的UI設計。平板電腦的屏幕要比手機的大得多,有更多的空間來放更多的UI組件,並且這些組件之間會產生更多的交互,Fragment允許這樣的一種設計,而不需要你親自來管理
viewhierarchy的復雜變化。 通過將activity的佈局分散到fragment中, 你可以在運行時修改activity的外觀,可以把Fragment看作是activity界面上的一部分,首先看下圖:

第一張圖我們看到,點擊左邊的item跳轉到右邊的佈局上顯示,這時候就要啟動一個activity,而下面的圖點擊左邊的item,可以在右邊顯示,用Fragment來顯示就行,而不用啟動activity,我們知道activity是android的組件,所以它比Fragment占用的內存就大,這就是為什麼在大點的屏幕推薦使用FragmentvcD4KPHA+z9bU2rS0vajSu7j2QW5kcm9pZM/uxL9GcmFnbWVudDE8L3A+CjxwPmFjdGl2aXR5X21haW4ueG1sPC9wPgo8cD48cHJlIGNsYXNzPQ==”brush:java;”>

在佈局中發現一個節點fragment,而我們以前layout中view都是大寫字母開頭,比如:TextView,所以fragment並不是一個view對象,而是一種類型,android:name指的是Fragment類的全類名,所以Fragment1要繼承Fragment對象,如果是使用 android.app.Fragment包下的,那麼指定的最小版本必須是11(android:minSdkVersion=”11″)小於11程序就會報錯,因為系統的Fragment是3.0出現的,

Fragment1.java

package com.example.fragment1;


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 {

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		
		return inflater.inflate(R.layout.fragment1, null);
	}
}

fragment1.xml

    


Fragment2.java

package com.example.fragment1;
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) {
		
		return inflater.inflate(R.layout.fragment2, null);
	}
}

fragment2.xml



    

MainActivity.java

package com.example.fragment1;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
}

我們看到MainActivity類中並沒有寫任何代碼,這是靜態創建Fragment,效果圖:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。