Fragment面试详解

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

在日常开发中Fragment使用频率很高,Fragment不属于其他四大组件,但是它有属于自己的生命周期。可以方便灵活的添加到Activity中,它不能独立使用,必须依附于Activity。所以我认为它可以被称为第五大组件。

Fragment相比于Activity更节省内存,页面切换更加流畅。

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

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

2.2动态加载:动态在Activity中添加Fragment

3、FragmentPagerAdapter与FragmentStatePagerAdapter的区别

FragmentPagerAdapter适用于页面较少的情况,FragmentStatePagerAdapter适用于页面较多的情况。因为FragmentStatePagerAdapter页面切换的时候会回收内存。

在FragmentStatePagerAdapter的destoryItem()方法中,最后FragmentTransaction.remove(fragmnet)方法。真正的释放了Fragmnet的内存。这就是说FragmentStatePagerAdapter比FragmentPagerAdapter更节省内存的。

在FragmentPagerAdapter的destoryItem()方法中,最后FragmentTransaction.detach(fragment)方法。并不是真正的内存回收,只是把Fragmnet UI和Activity脱离开来。

4、Fragment的生命周期


5、Fragment的通信

5.1在Fragment中调用Activity的方法,getActivity()

5.2在Activity中调用Fragment的放发接口回调,在Fragment中定义接口,在Activity中实现方法

5.3在Fragment中调用Fragment的方法,findFragmentById();首先在Fragment通过getActivity()方法,获取Activity中的方法。然后在Activity中findFragmentById()获取到Activity所对应的另外Fragment的方法

6、Fragment的replace()、add()、remove()方法

replace:替换Fragment实例,不是直接把Fragment添加到Activity的最上层。它是把Activity的最上层的Fragment替换成它想替换的Fragment

add:将Fragment实例添加到Activity的最上层

remove:将Fragment实例从Activity的队列中删除

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

推荐阅读更多精彩内容

  • 一.Fragment为什么被称为第五大组件 1.Fragment为什么被称为第五大组件 3.0大屏幕更灵活展示UI...
    xiaolong20阅读 593评论 0 0
  • 一、Fragment为什么被称为第五大组件 1、Fragment为什么被称为第五大组件 2、Fragment 加载...
    千涯秋瑟阅读 373评论 0 2
  • 《Android Fragment完全解析,关于碎片你所需知道的一切》 我们都知道,Android上的界面展示都是...
    cxm11阅读 2,241评论 2 19
  • 引言:这篇文章,大概分析下Fragment的生命周期、实际应用方法以及使用Fragment时需要注意的地方,算是F...
    androidjp阅读 13,005评论 10 104
  • 抻着 那脖儿 不动 就叫 硬颈啦 脖儿为什么 抻那呀 不难受呀 脖儿是 自个儿的 爱抻哪抻哪 它不动 又碍着 谁了...
    雪莉诗话阅读 383评论 22 12