一、概述
1、FragmentManager
要管理activity中的fragments,你就需要使用FragmentManager。通过getFragmentManager()或getSupportFragmentManager()获得
常用的方法有:
- manager.findFragmentById();
- manager.findFragmentByTag();
- manager.getFragments();
2、FragmentTransaction
一般用来对当前的Fragment进行管理,包括add,replace,remove;
常用的针对Fragment的方法有:
-
- add(int containerViewId, Fragment fragment, String tag);
-
- remove(Fragment fragment);
-
- replace(int containerViewId, Fragment fragment);
还有hide()、show()、detach()、attach()这些函数,我们下篇再讲,这节先对Fragment的用法有一个初步了解;
二、add()、replace()、remove()使用方法示例
下面就通过例子来看看以上几个函数的使用方法吧。
效果图如下:
- 点击“ADD Fragment1”,在将Fragment1添加到Activity的container中;
- 点击“ADD Fragment2”,将Fragment2添加到Activity的container中;
- 点击“Remove Fragment2”,将Fragment2的实例从container中移除,移除之后,就显示出其下方的fragment1的视图出来了。
- 再点击”replace Fragment1”,将container中的视图移除,然后添加上fragment2的视图。
那现在我们从头开始构建这个工程:
1、新建两个fragment1.xml 和 fragment2.xml:
从效果图中也可以看出,这两个XML什么都没有,只是通过背景色和文字来区别当前是哪个Fragment的XML布局文件而已,他们的布局代码如下:
fragment1.xml:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#ff00f0"
- android:orientation="vertical" >
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="This is fragment 1"
- android:textColor="#000000"
- android:textSize="25sp" />
-
- </LinearLayout>
fragment2.xml:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#ffff00"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/fragment2_tv"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="This is fragment 2"
- android:textColor="#000000"
- android:textSize="25sp" />
-
- </LinearLayout>
2、建立对应的Fragment类:Fragment1和Fragment2
Fragment1:
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.view.LayoutInflater;
- import android.view.View;
- import