Android之Fragment

文章脑图

文章内容

1、什么是Fragment

  • Fragment:是Android3.0开始新增的概念,意为碎片。Fragment是依赖于Activity的,不能独立存在的。
  • Android运行在各种各样的设备中,有小屏幕的手机,还有大屏幕的平板,电视等。同样的界面在手机上显示可能很好看,在大屏幕的平板上就未必了,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。针对屏幕尺寸的差距,Fragment的出现能做到一个App可以同时适应手机和平板。

2、Fragment生命周期

Fragment生命周期
Activity与Fragment生命周期对比
  • onAttach:Fragment与Activity建立关联的时候调用。初始化Fragment参数可以从getArguments获得,当Fragment附加到Activity之后,就无法再调用setArguments。所以除了在最开始时,其它时间都无法向初始化参数添加内容。

  • onCreate:Fragment初次创建时调用。尽管它看起来像是Activity的onCreate,但这个只是用来创建Fragment的。此时的Activity还没有创建完成,因为我们的Fragment也是Activity创建的一部分。所以如果你想在这里使用Activity中的一些资源,将会获取不到。如果想要获得Activity相关联的资源,必须在onActivityCreated中获取。

  • onCreateView:Fragment创建视图(加载布局)时调用。

  • onActivityCreated:确保与Fragment相关联的Activity创建完毕的时候调用。Activity已创建完成,该函数开始才可以使用Activity所有资源。

  • onStart:Fragment对用户就是可见的了。但用户还未开始与Fragment交互。此回调与Activity的onStart相绑定,与Activity的onStart一样。在Activity的onStart中来处理的代码,可以放在Fragment的onStart中来处理。

  • onResume:当 Activity 进入到 Resumed 状态,Fragment对用户可见并且正在运行时调用。这是Fragment与用户交互之前的最后一个回调。此回调与Activity的onResume相绑定,与Activity的onResume一样。当onResume结束后,就可以正式与用户交互了。

  • onPause:当 Activity 暂停的时候调用。此回调与Activity的onPause相绑定,与Activity的onPause一样。

  • onStop:当 Activity 停止的时候调用。此回调与Activity的onStop相绑定,与Activity的onStop一样。已停止的Fragment可以返回到onStart,然后重新往下走。

  • onDestroyView:当与Fragment关联的View被移除的时候调用。Fragment若要重新显示,将会创建新关联View。会在onStop之后和onDestroy之前调用。它会在这个视图状态被保存之后以及它被它的父视图回收之前调用。

  • onDestroy:当这个Fragment不再使用时调用,以允许Fragment进行最好的清理工作。即使经过了onDestroy阶段,仍然能从Activity中找到,因为它还没有Detach。

  • onDetach():当Fragment和Activity解除关联的时候调用。Fragment生命周期中最后一个回调。不再拥有视图层次结构,所有资源都将被释放。

参考

Fragment使用详解
Fragment 生命周期以及基本用法(一)

3、Fragment加载步骤

  1. getFragmentManager获取FragmentManager对象fm。
  2. fm.beginTransaction获取FragmentTransaction对象ft。
  3. 调用ft.add(需传入容器和Fragment对象)或ft.replace加载Fragment。
  4. 然后调用ft.commit提交事务。

4、Fragment传递数据

5、Fragment两种加载方式

6、Fragment源码分析

你可能感兴趣的:(Android之Fragment)