Android小记--Fragment碎片①

1、Fragment是Android在3.0版本后引入的,初衷是为了适应大屏幕的平板电脑。

2、使用Fragment可以吧屏幕分为几块,然后进行分组,进行模块化的管理

3、Fragment并不能单独使用,他需要嵌套在Activity中使用,尽管它有自己的生命周期,但还是会受到宿主Activity的生命周期的影响,例如:Activity被destory销毁了,它也会跟着销毁。

4、Fragment需要先导入android-support-v4的jar包才能使用Fragment功能。

5、加载方式:——静态加载   ——动态加载

6、静态加载Fragment实现流程:

      ①定义Fragment的xml布局文件。

      ②自定义Fragment类,需继承Fragment类或其子类,同时实现onCreateView()方法,在方法中,通过inflater.inflate加载布局文件,接着返回view。

      ③在需要加载Fragment的Activity对应的布局文件中fragment的name属性需要为全限定类名:即 包名+ “ . ” +fragment自定义的class文件。

      ④Activity调用布局即可。

7、动态加载Fragment主要分为四步:

      ①获取FragmentManager(fm),在Activity中可以直接通过getSupportFragmentManager(或者getFragmentManager)(通过这get...来管理activity中的fragment)得到。

      ②开启一个事务,通过调用beginTransaction方法开启(fm.beginTransaction();)。

      ③向容器中加入Fragment,调用add()方法或者replace()方法加载Fragment,(add(要传入的容器,fragment对象))。

      ④在前面的基础上还需调用commit()方法提交事务,当然还有其他方法,如remove。

8、FragmentTransaction(fragment事务)

一般用来对当前的Fragment进行管理,常用的针对Fragment的方法有:

------将一个fragment实例添加到Activity的最上层

add(要传入的容器,fragment对象);

------将一个fragment实例从Activity的fragment队列中删除

remove(Fragment fragment);

------替换containerViewId中的fragment实例,注意,它首先把containerViewId中所有fragment删除,然后再add进去当前的fragment

replace(要传入的容器,fragment对象);

9、使用add方法而不常用replace的原因:

——如果我们使用replace来切换页面,那么在每次切换的时候,Fragment都会重新实例化,重新加载一边数据,这样非常消耗性能和用户的数据流量。

——�这是因为replace操作,每次都会把Container中的现有的fragment实例清空,然后再把指定的fragment添加进去,就就造成了在切换到以前的fragment时,就会重新实例会fragment。

�——正确的切换方式是add(),切换时hide(),add()另一个Fragment;再次切换时,只需hide()当前,show()另一个。�这样就能做到多个Fragment切换不重新实例化

10、Fragment管理与Fragment事务


Android小记--Fragment碎片①_第1张图片

你可能感兴趣的:(Android小记--Fragment碎片①)