Fragment详解

Fragment优点:

1.使用频率较高,有自己的生命周期,可以更加灵活的加入到Activity中

2.Fragment比Activity更节省内存,UI切换效果更加舒适

3.Fragment需要依赖Activity,可以加载到Activity中

Fragment加载到Activity中的两种方法:

1.静态加载:添加Fragment到Activity的布局文件当中

2.动态加载:动态在Activity中添加Fragment

FragmentPagerAdapter和FragmentStatePagerAdapter区别

1.FragmentPagerAdapter用于页面较少的情况,FragmentStatePagerAdapter用于页面较多的情况

2.通过源码得知,FragmentStatePagerAdapter在每次切换ViewPager时,在destroyItem方法中,移除了fragment,释放了内存,适合页面较多的情况。

FragmentPagerAdapter在destroyItem方法中,只是将Fragment的UI和Activity的UI分离开,没有释放内存,适合页面较少的情况,对系统内存影响较小。

Fragment生命周期:

                         

可以看到Fragment比Activity多了几个额外的生命周期回调方法:
onAttach(Activity)
当Fragment与Activity发生关联时调用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用

注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对于该方法的实现

Fragment通信

1.在Fragment中调用Activity中的方法,通过调用getActivity获取到activity,然后调用Activity中的方法

2.在Activity中调用Fragment的方法,通过接口回调方式,fragment定义接口,在Activity中调用

3.在Fragment中调用Fragment中的方法,通过findFragmentById获取到Activity中另一个Fragment的方法

Fragment的replace、add、remove方法

replace:将activity最上层的fragment实例替换为新的fragment实例

add:将fragment实例添加到activity最上层

remove:将fragment实例从activity的fragment队列中删除


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值