1、Fragment为什么被称为第五大组件
Fragment跟其余的4个组件一样,具有自己的生命周期。在android3.0的引入,起初是为了给大
屏幕设备更灵活展现UI
所用到的。之后呢大家更偏向于Fragment的UI开发是由于Fragment比Activity更加节省内存,同时
UI的切换效果更加舒适。
2、Fragment加载到Activity的两种方式
静态加载:就是在布局中写入。
主要是通过FragmentManager获取FragmentTransaction对象来管理Fragment的
3、FragmentPagerAdapter与FragmentStatePagerAdapter的区别
主要的区别是FragmentPagerAdapter适用于Fragment较少的时候,FragmentStatePagerAdapter适
用于页面比较多的时候。
在FragmentStatePagerAdapter的destroyItem()方法中的remove()可以看到是真正的释放了Fragment内存,
所以所大量Fragment的情况下FragmentStateAdapter比FragmentPagerAdapter更加节省内存。
在FragmentPagerAdapter中的destroyItem()方法中的detach()方法是只是把FragmentUI跟ActivityUI脱离,
并没有真正的去释放Fragment的内存。
Activity与Fragment结合的生命周期图
onAttach:是Fragment与Activity建立关联有所回调的。
onCreate:在初次创建Fragment的时候调用的。
onCreateView:是系统在Fragment获取用户界面的时候调用的,绘制UI
onCreated:Fragment表明Fragment UI界面完全绘制好了。
onActivityCreated:是在Activity被绘制渲染成功后调用的方法。
onResume:Fragment可以跟用户进行交互了。初始化完全完成。
onPause:Fragment不能跟用户进行交互了。
onDestoryView: 跟Fragment的onCreateView相对应,会被保存
onDeach:Fragment不再被使用
1、在Fragment中调用Activity中的方法getActivity
2、在Activity中调用Fragment的方法接口回调
3、在Fragment中调用Fragment中的方法findFragmentByid
replace:是FragmentManager的方法、是替换Fragment实例而不是将Fragment实例加到最上层
add:将Fragment实例添加到activity的最上层
remove:将Fragment实例从activity的Fragment队列中删除