API介绍

介绍和基本使用

API中关于Fragment的介绍

Fragment是一种放置在#Activity中的向用户展示或供用户操作的UI界面。通过Activity.getFragmentManager()或者Fragment.getFragmentManager()来获取#FragmentManager对象来管理与Fragment的交互。

有很多中不同的Fragment使用方式来达到各种各样的效果。其核心是,它将一个庞大的Activity中部分独立的操作或者界面独立了出来。Fragment与它依附的Activity的关系是紧密的,并且不能被Activity之外的事物使用。尽管Fragment有自己的生命周期,但这个生命周期决定于他所依附的Activity:Activity停止,Fragment停止;Activity销毁,Fragment销毁。

Fragment的子类必须有一个公共的无参构造函数,系统会在必要时比如在状态还原期间重建Fragment实例,这就需要这个构造方法。如果这个无参构造没有找到,有时会发生运行时异常。

旧版本兼容

Fragment是在android 3.0版本引入进来的。老版本可以通过v4包下的android.support.v4.app.FragmentActivity来实现相同功能。可以看看这篇Fragments For All来了解更多细节。

生命周期

虽然Fragment的生命周期是与它所在的Activity相关联,但是在标准的activity生命周期处理逻辑之外,它有它自己的处理:它里面包含了像onResume这种基本的activity的生命周期方法。但是更为重要的是这些方法让界面交互和UI之间产生联系。
下面列出的是Fragment从启动到展现给用户所调用的核心生命周期方法:

  • onAttach() 调用该方法时Fragment会被连接到它的父Activity上。
  • onCreate() 调用该方法来进行Fragment的初始化创建。
  • onCreateView() 创建并返回Fragment绑定的view。
  • onActivityCreated() 告诉Fragment它所依附的Activity完成了onCreate()方法。
  • onViewStateRestored() 告诉Fragment保存过的状态已经恢复。
  • onStart() Fragment对用户可见(基于Activity也调用onStart())。
  • onResume() Fragment对用户是活动的,可获取焦点的。

如果Fragment不再使用,那么它会调用如下生命周期方法:

  • onPause() Fragment不再允许有用户交互的操作,原因是Fragment附属的Activity要么也处于暂停状态,要么就是Fragment中的操作正在修改Activity。
  • onStop() Fragment对用户不可见,原因是Fragment附属的Activity要么也处于停止状态,要么就是Fragment中的操作正在修改Activity。
  • onDestroyView() 当Fragment的View被分离时,调用该方法,清理绑定View的相关资源,解除绑定。
  • onDestroy() 在整个生命周期结束时调用该方法,清除所有的资源,包括结束线程和关闭数据库连接等。
  • onDetach() 当Fragment从它的父Activity上分离时,调用该方法。

上述过程,可以图示:
Fragment生命周期图示

布局

results matching ""

    No results matching ""