南京建设网站报价/百度超级链
1、Fragment被称为第五大组件
(1)为什么叫第五大组件
Fragment有自己的生命周期,起初是被用来在大屏幕设备上 比如pad上做UI适配,一般与viewPager搭配使用
可以灵活的动态的加载到Activity
与Activity相比,更加节省内存
切换UI的效果更加舒适
使用频率上比较多 但是不属于其他的四大组件
(2)Fragment加载到Activity的方式
一、静态加载 这个就是在xml布局中直接加载
二、动态加载 通过add或者replace方法 添加进去 使用FragmentManager管理
(3)FragmentPagerAdapter与FragmentStatePagerAdapter的区别
FragmentPagerAdapter是用于页面较少的情况、FragmentStatePagerAdapter用于页面较多的情况。
因为FragmentStatePagerAdapter的源码中,在destoryItem的方法中,调用了 mCurtransction.remote(fragment)。真正的释放了内存
而FragmentPagerAdapter的destoryItem中 仅仅是用了mCurTransaction.detach 仅仅是分离了Fragment 但是并没有真正的释放回收
2、Fragment的生命周期以及与Activity相关的生命周期
Fra->onAttach
Fra->onCreate
Fra->onCreateView
Fra->onCreateViewed
Act->onCreate
Fra->onActivityCreateed
Act->onStart
Fra->onStart
Act->onResume
Fra->onResume
Fra->onPause
Act->onPause
Fra->onStop
Act->onStop
Fra->onDestoryView
Fra->onDestory
Fra->onDetach
Act->onDestory
从onResume之前几乎都是activity先执行(onCreate是Fragment先执行的),从onPause都是Fragment先执行
3、Fragment之间的通信
Fragment获取Activity 然后通过Activity代理 进行通信
事件总线进行通信
通过广播进行通信