Fragment面试题详解

一.Fragment加载到Activity的两种方式

1.静态加载:以一个fragment的xml中的标签添加到activity中

2.动态加载

    1>获取到FragmentManager,(getFragmentManager())并获取到transaction(fragmentmanager.begintransaction())

    2>创建fragment(AFragment  aFragment = new  AFragment())

    3>使用add方法将fragment添加到transaction中(transaction.add())

    4>调用commit()方法使得transaction实例改变生效

二.FragmentPagerAdapter与FragmentStatePagerAdapter区别

前者适用于页面较少的情况,后者适用于页面较多的情况,通过源码了解,主要查看destroyItem方法中的最后一行,mcurtransaction.remove(fragment),通过这行代码了解到,FragmentStatePagerAdapter是真正释放fragment内存,在FragmentPagerAdapter的destroyItem方法中所调用的是mcurtransaction.detach(fragment),他仅仅是将fragment的页面与activity的页面抽离开来,并没有真正的销毁fragment释放内存.

三.fragment的生命周期


四.fragment通信

    1.在fragment中调用activity中的方法getActivity

    2.在Activity中条用Fragment中的方法,一般常用的是接口回调,在fragment中创建接口,在activity中实现接口,这样就能完成activity中调用fragment中的方法

    3.在Fragment中调用Fragment中的方法,首先先通过getactivity方法,获取activity的方法,然后通过fingFragmentById获取到另外一个fragment的方法,然后进行调用

五.fragment的replace , add , remove , 方法

    replace方法是将activity中顶层的fragment进行替换

    add方法是将一个fragment添加到activity中

    remove方法是将activity中的某个fragment进行移除

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权声明:本文为作者原创,转载必须注明出处。 转载请注明出处:https://www.jianshu.com/p/...
    Stan_Z阅读 4,167评论 1 18
  • 最近刚从旧公司离职,为面试在做准备,因为平时开发CV大法用得比较多,很多基础知识掌握得不是很牢靠以及很多工具框架只...
    黎清海阅读 2,267评论 1 19
  • 《Android Fragment完全解析,关于碎片你所需知道的一切》 我们都知道,Android上的界面展示都是...
    cxm11阅读 2,255评论 2 19
  • 在各种Android项目中,我们不可避免要使用到Fragment,但很多地方其实我们只是习惯性或copy代码来使用...
    HolenZhou阅读 2,135评论 1 15
  • 人生就像一场旅行,我们每个人都是旅人,生命短暂的时光如白驹过隙,又像握在手心里的流沙一样看的见留不住。而每个人的选...
    诗恬阅读 369评论 5 1