碎片(Fragment)是一种可以嵌入在活动中的UI片段,可以让程序更合理的使用大屏幕。它具有自己的生命周期,但是其生命周期受宿主Activity生命周期的影响,能够接受自己的输入事件。可以在Activity运行时获取或者移除Fragment。有点像在Activity中操作“子Activity”。
- 如何创建Fragment?
要想创建Fragment,必须创建Fragment的子类或者已有子类。 - 如何添加用户界面?
想要为片段提供布局,必须实现onCreateView()回调方法,Android系统会在片段需要绘制其布局时调用此方法。 如何向Activity中添加片段?
- 在Activity的布局文件中声明该片段
- 通过编程方式将片段添加到现有的Activity中
在碎片中模拟返回栈
在事务提交之前调用了 FragmentTransaction 的 addToBackStack()方法,它可以接收一个名字用于描述返回栈的状态,一般传入 null 即可。- 碎片和活动之间进行通信
- 在活动中获取碎片:getSupportFragmentManager().findFragmentById()
或者getSupportFragmentManager().findFragmentByTag() - 在碎片中获取活动:getActivity()
- 在活动中获取碎片:getSupportFragmentManager().findFragmentById()
- 碎片的生命周期
第一次创建碎片:onAttach()——>onCreate()——>onCreateView()——>onActivityCreated()——>onStart()——>onResume()
返回:onPause()——>onStop()——>onDestroyView
再次启动:onCreateView()——>onActivityCreated()——>onStart()——>onResume()
退出:onPause()——>onStop()——>onDestroyView——>onDestoryView()——>onDestory()——>onDetach()