Fragment是一种可以嵌入在活动当中的UI片段,Fragment拥有自己的生命周期,可以接受处理用户的事件,并且可以在一个Activity中动态的添加,替换,移除不同的Fragment,因此对于信息的展示具有很大的便利性。
PS:创建Fragment时,建议使用support-v4库中的Fragment,因为他可以让碎片在所有的Android系统版本保持功能的一致性。最好不要使用系统内置的Android.pp.Fragment.
Fragment的生命周期
onAttach:当碎片与活动建立关联时调用;
onCreateView:为碎片创建视图(加载布局)时调用;
onActivityCreated:确保与碎片相关联的活动一定已经创建完毕时调用;
onDestroyView:当与碎片关联的视图被移除时调用;
onDetach:当碎片和活动解除关联时调用;
PS:在碎片中可以通过onSaveInstance方法来保存数据,因为进入停止状态的碎片有可能在系统内存不足的时候被回收。保存下来的数据在onCreate,onCreateView,onActivityCreated这3个方法中都可以重新得到,因为他们都含有一个Bundle类型的saveInstanceState参数。
动态添加碎片主要的5步:
1)创建待添加的碎片实例;
2)获取FragmentManager,在活动中可以直接调用getSupportFragmentManager方法得到;
3)开启一个事务,通过调用beginTransaction方法开启;
4)向容器内添加或替换碎片,一般使用replace方法实现,需要传入容器的id和待添加的碎片实例;
5)提交事务,调用commit方法来完成;
在Fragment中模拟返回栈:
FragmentTransaction中提供了一个addToBackStack方法,可以用于将一个事务添加到返回栈中,按下back键可以回到上一个碎片。
碎片的状态:
运行状态:当一个碎片是可见的,并且它所关联的活动正处于运行状态时,该碎片也处于运行状态;
暂停状态:当一个活动进入暂停状态时,于它相关联的可见碎片就会进入到暂停状态。
停止状态:进入停止状态的碎片对活动来说是完全不可见的,有可能被系统回收;
销毁状态:活动被销毁时;