1、新建一个Activity,在Activity中的布局是垂直的线性布局,2个button,一个FramLayout,为Framlayout设置一个id
2、新建2个Fragment,继承Fragment,在oncreatview中初始化fragment的布局
动态添加Fragment主要分为4步:
1.获取到FragmentManager,在V4包中通过getSupportFragmentManager,在系统中原生的Fragment是通过getFragmentManager获得的。2.开启一个事务,通过调用beginTransaction方法开启。3.向容器内加入Fragment,一般使用add或者replace方法实现,需要传入容器的id和Fragment的实例。4.提交事务,调用commit方法提交。在Activity中的布局
[html] view plain copy <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:baselineAligned="false" > <Button android:id="@+id/btn_show_fragment1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="显示Fragment1"/> <Button android:id="@+id/btn_show_fragment2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="显示Fragment2"/> <FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> 在Activity中的代码
其它代码都没有动,主要的是在MainActivity里,点击这两个按钮时做的处理:
[java] view plain copy public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btnLoadFrag1 = (Button)findViewById(R.id.btn_show_fragment1); btnLoadFrag1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); Fragment1 fragment1 = new Fragment1(); transaction.add(R.id.fragment_container, fragment1); transaction.commit(); } }); Button btnLoagFrag2 = (Button)findViewById(R.id.btn_show_fragment2); btnLoagFrag2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); Fragment2 fragment2 = new Fragment2(); transaction.add(R.id.fragment_container, fragment2); transaction.commit(); } }); } } 主要的步骤是 FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); Fragment1 fragment1 = new Fragment1(); transaction.add(R.id.fragment_container, fragment1); transaction.commit();
