fragment轻量级的Activity , Fragment不需要在清单文件中注册
使用Fragment的步骤:
1.创建一个类,并且继承Fragment
2.重写onCreateVeiw方法
3.在oncreateView中使用inflater转换器把一个布局文件转换成view对象。
(Inflate()方法第一个为加载布局的id,第二个参数是给该布局的外部再嵌套一层父布局,如果不需要就直接传null.
1.如果root(第二个参数)为null,第三个参数将失去作用,设置任何值都没有意义。
2.如果root不为null.则第三个参数默认值为true,则给布局的外部再嵌套一层父布局,设为false则不给该布局加布局)
静态使用Fragment
- 在项目的资源中增加一个fragment的布局文件
- 继承Fragment,重写onCreateView决定Fragemnt的布局
- 在Activity的布局中添加Fragment(与添加普通的控件类似)。此处必须指明Fragment代表的哪个具体的Fragment类。(class属性或者是name属性),并且一定要给这个标签加id属性或者是tag属性
注意:
- 由于Fragment从3.0新增,所以如果想兼容3.0以前的版本Fragment要使用V4包中的,使用Fragment的Activity也要应用v4包中的FragmentActivity。
- Fragment的onCreateView必须实现,这个方法的返回视图决定了,这个Fragment的显示视图。
动态使用Fragment
1。在主类中使用一个
FrameLayout用来显示Fragment中的内容
2.创建一个类并继承Fragment
3.重写onCreateView方法。
4.使用转换器把布局文件转换成View对象,
5.把onCreateView方法中的返回值改为转换的view的句柄
6.在主类中把Fragment中的内容加载到主类中的FrameLayout中之前,需先进行如下操作:
1.创建一个FragmentManager,得到管理器
FragementManager fm = getFragmentManager();
2.通过管理器得到事物----当Fragment的状态发生改变时,事物将丢失,所以在每次使用的事物后,都应重新创建
FragmentTransaction tr = fm.beginTransaction();
3.通过事物加载Fragment中的内容
--使用add会造成当调用其他的fragment时,会把两个的内容显示到一起
tr.add(主类中的FrameLayout的控件的id,继承Fragment的对象,tag);
--是用这个会造成当前fragmeng的内容替换上一个fragment中的内容
tr.replace(主类中的FrameLayout的控件的id,继承Fragment的对象,tag);
4.通过事物提交--提交之后则显示在framelayout中
tr.commit();