Fragment面试详解

一、Fragment为什么被称为第五大组件

1、Fragment为什么被称为第五大组件

2、Fragment 加载到Activity的两种方式

静态加载、动态加载。

3、FragmentPageAdapter与FragmentStatePageAdapter区别

使用FragmentPagerAdapter 时,Fragment对象会一直存留在内存中,所以当有大量的显示页时,就不适合用FragmentPagerAdapter了,FragmentPagerAdapter 适用于只有少数的page情况,像选项卡。释放的时候使用detach


Fragment面试详解_第1张图片

这个时候你可以考虑使用FragmentStatePagerAdapter ,当使用FragmentStatePagerAdapter 时,如果Fragment不显示,那么Fragment对象会被销毁,(滑过后会保存当前界面,以及下一个界面和上一个界面(如果有),最多保存3个,其他会被销毁掉)

但在回调onDestroy()方法之前会回调onSaveInstanceState(Bundle outState)方法来保存Fragment的状态,下次Fragment显示时通过onCreate(Bundle savedInstanceState)把存储的状态值取出来,FragmentStatePagerAdapter 比较适合页面比较多的情况,像一个页面的ListView 。

Fragment面试详解_第2张图片


二、Fragment生命周期

1、Activity与fragment生命周期

Fragment面试详解_第3张图片

三、Fragment 通信


Fragment面试详解_第4张图片

三、Fragment 的replace、add、remove方法

replace

第一次加载时的生命周期:onAttach-onCreate-onCreateView-onViewCreate-onActivityCreate-onStart-onResume;

销毁的时候:onPause-onStop-onDestroyView

再次加载 到时候:onCreateView-onViewCreate-onActivityCreate-onStart-onResume。

你可能感兴趣的:(Fragment面试详解)