Android面试题----Fragment问题

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

1.Fragment为什么被称为第五大组件?
(1)有自己的生命周期 (2)使用频率高

2.Fragment加载到Activity的两种方式?
(1)添加Fragment到Activity的布局文件中去。
(2)动态在Activity中添加Fragment。

3.FragmentPagerAdapter和FragmentStatePagerAdapter的区别?
(1)FragmentPagerAdapter适合用于页面较少的情况,切换时不回收内存,只是把UI和Activity分离,页面少时对内存影响不明显;
(2)FragmentStatePagerAdapter适合用于页面较多的情况,切换时回收内存。

二、Fragment的生命周期

Fragment的生命周期与Activity息息相关

Activity处于Created:

onAttach()
onCreate()
onCreateView()
onActivityCreate()

Activity处于started:
onstart()

Activity处于resumed:
onResume()

Activity处于paused:
onPause()

Activity处于stoped:
onStop()

Activity处于Destroyed:
onDestroyView()
onDestroy()
onDetach()

Fragment生命周期分析
1.当一个Fragment被创建的时候,它会经历如下状态:1.onAttach() 2.onCreate() 3.onCreateView() 4.onActivityCreate()
2.当一个Fragment对用户可见的时候,它会经历如下状态:1.onStart() 2.onResume()
3.当一个Fragment进入“后台模式”的时候,它会经历如下状态:1.onPause() 2.onStop()
4.当一个Fragment被销毁(或是持有它的Activity被销毁)的时候,它会经历如下状态:1.onPause() 2.onStop() 3.onDestroyView() 4.onDestroy() 5.onDetach()
5.和Activity一样,在如下的状态中,可以使用Bundle对象保存一个Fragment对象
6.Fragment大部分状态和Activity比较相似,但Fragment有一些新的状态:
(1)onAttach():当Fragment与Activity关联的时候,调用这个方法。
(2)onCreateView():创建Fragment中的视图的时候,调用这个方法。
(3)onActivityCreate():当Activity的onCreate()返回的时候,调用这个方法。
(4)onDestroyView():当Fragment中的视图被移除的时候,调用这个方法。
(5)onDetach():当Fragment与Activity分离的时候,调用这个方法。

在Activity进入到Resumed状态的时候,可以自由添加或者删除Fragment,因为只有在这个时候,Fragment的生命周期可以独立运转,其他的时候都是依据Activity生命周期的变化。

三、Fragment通信

  1. 在Fragment中调用Activity中的方法getActivity()
    2.在Activity中调用Fragment的方法、接口回调
    3.在Fragment中调用Fragment的方法findFragmentById()
    4.使用广播

四、Fragment的replace、add、remove方法

replace:替换已有的Fragment视图
add:将Fragment添加到Fragment队列,从而在容器中显示
remove:将Fragment从Fragment队列删除,这样Fragment会从容器中移除

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值