一、Fragment为什么被称为第五大组件
1、Fragment为什么被称为第五大组件
2、Fragment 加载到Activity的两种方式
静态加载、动态加载。
3、FragmentPageAdapter与FragmentStatePageAdapter区别
使用FragmentPagerAdapter 时,Fragment对象会一直存留在内存中,所以当有大量的显示页时,就不适合用FragmentPagerAdapter了,FragmentPagerAdapter 适用于只有少数的page情况,像选项卡。释放的时候使用detach

这个时候你可以考虑使用FragmentStatePagerAdapter ,当使用FragmentStatePagerAdapter 时,如果Fragment不显示,那么Fragment对象会被销毁,(滑过后会保存当前界面,以及下一个界面和上一个界面(如果有),最多保存3个,其他会被销毁掉)
但在回调onDestroy()方法之前会回调onSaveInstanceState(Bundle outState)方法来保存Fragment的状态,下次Fragment显示时通过onCreate(Bundle savedInstanceState)把存储的状态值取出来,FragmentStatePagerAdapter 比较适合页面比较多的情况,像一个页面的ListView 。

二、Fragment生命周期
1、Activity与fragment生命周期

三、Fragment 通信

三、Fragment 的replace、add、remove方法
replace
第一次加载时的生命周期:onAttach-onCreate-onCreateView-onViewCreate-onActivityCreate-onStart-onResume;
销毁的时候:onPause-onStop-onDestroyView
再次加载 到时候:onCreateView-onViewCreate-onActivityCreate-onStart-onResume。
网友评论