使用动态方法建立Fragment

MainActivity.java

package com.example.firstfragment;

import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.view.Menu;

public class MainActivity extends Activity
{

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// 判断当前手机朝向
		int width = getWindowManager().getDefaultDisplay().getWidth();// 获得窗口管理者
																		// 获得默认分辨率
																		// 获得宽度
		int height = getWindowManager().getDefaultDisplay().getHeight();// 获得窗口管理者
																		// 获得默认分辨率
																		// 获得宽度

		Fragment1 fragment1 = new Fragment1();
		Fragment2 fragment2 = new Fragment2();

		FragmentManager fm = getFragmentManager();// 获得FragmentManager
		FragmentTransaction ft = fm.beginTransaction();// FragmentManager通过开始事务获得事务对象

		if (width > height)
		{
			// 水平方向
			// containerViewId 容器ID
			// 可以在xml中给MainActivity的layout起个ID,也可以用系统提供的方法android.R.id.content,获得当前Activity的界面
			ft.replace(android.R.id.content, fragment1);// 将一个fragment
														// remove掉,然后替换成一个新的

		} else
		{
			// 竖直方向
			ft.replace(android.R.id.content, fragment2);
		}
		ft.commit();// 既然是事务,最后肯定需要提交
	}

}

Fragment1.java

package com.example.firstfragment;

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被创建时候调用的方法,返回当前Fragment显示的内容
	 */
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState)
	{
		//使用xml文件填充fragment1
		return inflater.inflate(R.layout.fragment1, null);
	}
}

Fragment2.java

package com.example.firstfragment;

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
{
	/**
	 * 当Fragment被创建时候调用的方法,返回当前Fragment显示的内容
	 */
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState)
	{
		//使用xml文件填充fragment1
		return inflater.inflate(R.layout.fragment2, null);
	}
}

activity_main.xml 没有添加其他内容

fragment1.xml

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

</LinearLayout>

fragment2.xml

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

</LinearLayout>


你可能感兴趣的:(使用动态方法建立Fragment)