什么是Fragment
Fragment是在Android3.0中引入,目的使用来解决不同屏幕分辨率上的UI显示与交互问题。
Fragment有自己的布局,生命周期和响应事件,但它必须依附Activity存在,当它依附的Activity生命周期结束,
它的生命周期也就随之结束。
Fragment的使用可以大大减少Activity的使用,给程序瘦身,使程序更加的易于维护,而且Fragment还可以
动态替换,在UI的变化上拥有巨大的优势。
Fragment的生命周期
上图:
每个方法的调用时间和场景
onAttach()
Fragment和Activity建立关联的时候调用(获得activity的传递的值)
Fragment和Activity建立关联的时候调用(获得activity的传递的值)
onCreateView()
为Fragment创建视图(加载布局)时调用(给当前的fragment绘制UI布局,可以使用线程更新UI)
为Fragment创建视图(加载布局)时调用(给当前的fragment绘制UI布局,可以使用线程更新UI)
onActivityCreated()
当Activity中的onCreate方法执行完后调用(表示activity执行oncreate方法完成了的时候会调用此方法)
当Activity中的onCreate方法执行完后调用(表示activity执行oncreate方法完成了的时候会调用此方法)
onDestroyView()
Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局)
Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局)
onDetach()
Fragment和Activity解除关联的时候调用(脱离activity)
Fragment和Activity解除关联的时候调用(脱离activity)
Fragment生命周期解读
- 当一个Fragment被创建时依次调用
onAttach()
onCreate()
onCreateView()
onActivityCreated()
- 当Fragment对用户可见时
onStart()
onResume()
- 当Fragment不可见时
onPause()
onStop()
- 当Fragment被销毁时
onPause()
onStop()
onDestroyView()
onDestroy()
onDetach()
- 像Activity一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象
onCreate()
onCreateView()
onActivityCreated()
Fragment与Activity的生命周期对比