https://www.jianshu.com/p/c8f34229b6dc
https://www.cnblogs.com/purediy/p/3276545.html
fragments的大部分状态都和 activity 很相似,但fragment有一些新的状态。
- onAttached() —— 当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。
- onCreateView() —— 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。
- onActivityCreated() —— 当activity的onCreated()方法返回后调用此方法
- onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
- onDetach() —— 当fragment和activity分离的时候,调用这个方法。
1、通过 add hide show 方式来切换 Fragment
当以这种方式进行 Fragment 1 与 Fragment 2 的切换时,Fragment 隐藏的时候并不走 onDestroyView,所有的显示也不会走 onCreateView 方法,所有的 view 都会保存在内存。
2、使用 replace 的方法进行切换时
通过 replace 方法进行替换的时,Fragment 都是进行了销毁,重建的过程,相当于走了一整套的生命周期。
3、使用 ViewPager 进行切换时
ViewPager 会进行预加载;
但是切换的时候不会销毁,除非达到了 ViewPager 的缓存限制(可以通过setOffscreenPageLimit(int limit) 设置)