1、Fragment可以作为Activity界面的一部分;
2、一个Activity可以包含多个Fragment,一个Fragment也可以在多个Activity中使用;
3、Activity运行过程中,可以添加、删除或替换Fragment;
4、Fragment可以响应自己的输入事件,并且拥有自己的生命周期,但是受宿主Activity的生命周期影响。
Fragment 生命周期图示:
onAttach()
当Fragment被添加到Activity时候会回调这个方法,并且只回调一次
onCreate()
创建Fragment的时候会回调这个方法,并且只调用一次
onCreateView()
创建与Fragment对象关联的View视图时调用。
onActivityCreated()
当Fragment所在的Activity启动完成,也就是当Activity对象完成自己的onCreate方法时调用这个方法
onStart()
Fragment对象在ui可见时调用
onResume()
Fragment对象的ui可以与用户交互时调用
onPause()
Fragment对象可见,但不可交互。也就是Activity对象转为onPause状态时调用
onStop()
有空间完全遮挡;或者宿主Activity对象转为onStop状态时调用。
onDestroyView()
销毁Fragment对象所包含的view资源时调用,也就是移除fragment中的视图
onDestroy()
销毁Fragment对象时调用
onDetach()
Fragment从Activity中删除时会调用
锁屏——解锁,Fragment生命周期变化:
onPause()——onStop()
onStart()——onResume()
Fragment生命周期和Activity生命周期的对比:
Fragment与Activity通信:
1、Fragment可调用getActivity()方法获取它所在的Activity;
2、Activity可调用FragmentManager的findFragmentById()或findFragmentByTag()方法获取Fragment。