Fragment是Android3.0引入的新API,可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。
可以把Fragment设计成可以在多个Activity中复用的模块,
当开发的应用程序同时适用于平板电脑和手机时,可以利用Fragment实现灵活的布局,改善用户体验。
一、Fragment的特征
1.Fragment总是作为Activity界面的组成部分。Fragment可调用getActvity()方法获取它所在的Activity,调用FragmentManager的findFragmentById()或findFragmentByTag()方法来获取Fragment。其中,fragment的id或tag在其布局文件<fragment../>元素中定义。
2.在Activity运行过程中,可调用FragmentManager的add()、remove()、replace()、方法动态地添加、删除或替换Fragment。
3.一个Activity可以同时组合多个Fragment;反过来,一个Fragment也可能被多个Activity复用;
4.Fragment可以响应自己的输入事件、并拥有自己的声明周期,但它们的生命周期直接被其他所属的Activity的生命周期控制。
二、Fragment的生命周期
因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。
1.Fragment的几个状态
(1)活动状态:当前Fragment位于前台,用户可见、可以获得焦点;
(2)暂停状态:其他Acitvity位于前台,该Fragment依然可见,只是不能获得焦点;
(3)停止状态:该Fragment不可见,失去焦点
(4)销毁状态:该fragment被完全删除,或者Fragment所在的Activity被结束
2.Fragment生命周期
如最常见的就是onCreateView()方法,其作用是返回一个View对象将Fragment显示出来。
三、Fragment开发基本步骤
1.创建Fragement,并设置该Fragment的显示界面
与创建Activity类似,开发者实现的Fragment必须继承Fragment基类,Android提供了4种Fragment:(1)DialogFragment-对话框界面的Fragment;(2)ListFragment-实现列表界面的Fragment;(3)PreferenceFragment