淺談如何靜態創建Fragment

在安卓3.0版本之後,安卓推出了fragment,可以這樣理解,fragment是一種輕量級的Activity。
靜態創建Activity,靜態創建Fragment實際上是大同小異的。
我們先比較一下:
Activity:首先創建一個xml文件,然後創建與之對應的java文件,通過設置讓兩者關聯,最後在主清單中進行註冊。
Fragment:首先我們同樣需要註冊一個xml文件,然後創建與之對應的java文件,通過onViewCreate()的返回方法進行關聯,最後我們需要在Activity中進行配置相關參數。
首先是XML文件,如下,只做了設置背景色

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="#ff0000"
    android:layout_height="match_parent"
    android:orientation="vertical" >


</LinearLayout>

接下來是java文件,我們需要複寫onViewCreate()方法,代碼如下

package com.example.fragment;

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);

    }
}

這樣二者就關聯了,接下來我們在Activity中創建fragment的位置


    <fragment 
          android:id="@+id/fragment1"
         android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:name="com.example.fragment.Fragment1"

        />

這樣我們就實現了靜態的創建一個fragment的方法
總結,同樣是同Activity一樣的操作,fragment的要比Activity少一級

接下來是動態創建fragment,我們需要的就是將上面的第三步不要做,將這個步驟放在代碼裏面執行
1、我們首先應該得到一個FragmentManager
2、通過獲得Fragment之後我們可以通過得到一個事件beginTransaction()
3、通過replace方法實現界面的動態變化
Deom代碼如下:

FragmentManager  fm=getFragmentManager();
        FragmentTransaction fts=fm.beginTransaction();
        Fragment1 fragment1=new Fragment1();
        Fragment2 fragment2=new Fragment2();

        int width=getWindowManager().getDefaultDisplay().getWidth();
        int height=getWindowManager().getDefaultDisplay().getHeight();
        if(width>height)
        {
            fts.replace(android.R.id.content, fragment1);
        }
        else
        {
            fts.replace(android.R.id.content, fragment2);
        }
        fts.commit();

由於是事件,所以千萬要記得提交。
總結,動態創建的方式就是,得到一個管理器,然後得到一個事件,然後通過事件裏面的方法進行設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章