1、FragmentManager管理fragment队列
1):fragment队列
2):fragment事务回退栈
2、getSupportFragmentManager()
使用了支持库和AppCompatActivity类,所以调用这个方法。如果不考虑旧版本的兼容问题,可以再Activity里面调用getFragmentManager()。
3、fragment事务,fragment transaction()
fragment事务被用来添加、移除、附加、分离或者替换fragment队列中的fragment,FragmentManager管理者fragment事务回退栈。fragmentManager.beginTransaction()方法创建并且返回FragmentTransaction实例,FragmentTransaction类支持流街口(fluent interface)的链式方法调用。如:FragmentManager fm = getSupportFragmentManager();fm.beginTransaction().add(int a,fragment).commit();两个参数表示容器视图资源ID和新创建的CrimeFragment,容器资源ID的作用是:
1)、告诉FragmentManager,fragment视图应该出现在activity视图的什么位置
2)、唯一标识FragmentManaer队列中的fragment.
4、fragment中需要注意的地方
FragmentManager使用FrameLayout组件的资源ID识别CrimeFragment,使用容器视图资源ID识别UI fragment就是FragmentManager的一种内部实现机制。如果向activity添加多个fragment,通常需要分别为每个fragment创建具有不同ID的不同容器。首先,find得时候,可能获取的fragment在队列中,那就直接返回。(为什么说可能,设备旋转或者回收内存时,activity被销毁时,FragmentManager会将fragment队列保存下来,重建的时候FragmentManager获取保存的队列,重建fragment队列,恢复到原来的状态)当然没有的时候,新建一个fragment,启动一个fragment事务,然后将新建的fragment添加FragmentManager的队列当中。