(1)Fragment可以作为Activity界面的一部分组成出现
(2)可以再一个Activity中同时出现多个Fragment,并且一个Fragment也可以再多个Activity中使用
(3)在Activity运行过程中,可以添加,移除或替换Fragment
(4)Fragment可以响应自己的输入事件,并且有自己的生命周期,他们的生命周期会受宿主Activity的生命周期影响
onCreateView()方法
Fragment第一次绘制它的用户界面的时候,系统会调用此方法,为了绘制Fragment的UI,此方法必须返回一个View,如果不显示UI,返回null即可。
Fragment加载方法
(1)静态加载
在Activity的layout文件中声明Fragment,需要特别注意的是<fragment>中的android:name属性制定了在layout中实例化的Fragment类
标识Fragment的方法:
android:id属性提供一个唯一ID
android:tag属性提供一个唯一字符串
(2)动态加载
撰写代码将Fragment添加到一个Activity layout中 add():添加一个Fragment(指定要添加的fragment和插入的View) 与此类似的还有remove(),替换()
处理Fragment事务
根据用户的交互情况,对Fragment进行添加,移除,替换,以及执行其他动作,提交给Activity的每一套变化被称作一个事务。
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
每一个事务都是同事执行一套变化,可以在一个事务中设置你所有想执行的变化,包括add(),remove(), replace(),然后提交给Activity,必须调用commit()方法
如果允许用户通过按下BACK按键返回到前一个Fragment状态,调用commit()之前可以加入addToBackStack()方法
Fragment与Activity通信
> Fragmen的生命周期
关键方法:
onAttach()
onCreateView()
全部方法:
(1)启动Fragment
onAttach() ====>onCreate() ====> onCreateView() ===> onActivityCreated() ===> onStart() ===>onResume()
(2) 屏幕锁屏
onPause() ====> onStop()
(3) 屏幕解锁
onStart() ====> onResume()