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>