Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android百日程序:嵌入Fragment

Android百日程序:嵌入Fragment

編輯:關於Android編程

Fragment相當於一個小型activity,因為Fragment可以實現activity中所有的功能,不同的是Fragment可以嵌入activity,一個activity可以有多個Fragment,而且可以運行時根據需要切換Fragment,達到可以適應不同屏幕大小等目的需要。


本章來看看如何在activity中嵌入Fragment的方法,有靜態和動態方法的。

靜態方法就是使用xml直接嵌入,動態就是在Java代碼中嵌入。


方法:

1 按照默認設置新建項目

2 新建一個類命名為Fragment1.java

代碼如下:

package bill.su.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, container, false);			
	}
}
3 新建layout的xml文件,輸入代碼如下:



    
    



4 同理新建第二個類:

package bill.su.fragment;

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, container, false);
	}
}

5 新建第二個類的對應layout的xml文件:



    
        



6 只需要在主activity的xml文件中直接嵌入Fragment就可以了:



    
   
    



運行得到如下效果:

\

<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+1eLR+c2s0ru49mFjdGl2aXR51tDHtsjrwcvBvbj2srvNrLXERnJhZ21lbnTBy6GjPC9wPgo8cD7V4tH5u/mxvsnPsrvTw9C0SmF2YbT6wuuhozwvcD4KPHA+PGJyPgo8L3A+CjxwPsjnufvU2mFjdGl2aXR5tcRKYXZhtPrC69bQyrXP1rXEu7CjrL7N1rvQ6NKq0N64xG9uQ3JlYXRluq/K/b7Nv8nS1KO6PC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;"> @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FragmentManager fragManager = getFragmentManager(); FragmentTransaction fragTrans = fragManager.beginTransaction(); // get the current display info WindowManager wm = getWindowManager(); Display d = wm.getDefaultDisplay(); if (d.getWidth() < d.getHeight()) { Fragment1 frag1 = new Fragment1(); fragTrans.replace(android.R.id.content, frag1); } else { Fragment2 frag2 = new Fragment2(); fragTrans.replace(android.R.id.content, frag2); } fragTrans.commit(); }
知識點:

使用FragmentManager和FragmentTransaction兩個類實現動態載入Fragment。

其中的WindowManager是為了得到當前屏幕的長和寬,判斷是橫屏韓式豎屏,並根據這判斷載入不同的Fragment,得到不同的效果。

最後一句FragTrans.commit()是必須的,這樣才能使得Fragment載入成功。


到達一定境界了,這些全部都成為很容易很簡單的東西了,學一些新知識點並不難,難是在於記憶,更難的是在於靈活運用,還有更加更加難的是如何運用這些知識創造價值,最難的是創造別人無法創造的價值。



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