Fragment官方注释翻译

版权声明:吴延宝原创 https://blog.csdn.net/codeyanbao/article/details/81144206

Fragment

原文

A Fragment is a piece of an application's user interface or behavior
 * that can be placed in an {@link Activity}.  Interaction with fragments
 * is done through {@link FragmentManager}, which can be obtained via
 * {@link Activity#getFragmentManager() Activity.getFragmentManager()} and
 * {@link Fragment#getFragmentManager() Fragment.getFragmentManager()}.
 * etc

Code Here

释义

概括

Fragment可看作为应用操作界面的一块或者是可以放置在Activity之中的部分。可以通过FragmentManager来完成与Fragment的交互,可以通过Activity.getFragmentManager或者Fragment.getFragmentManager接口获取FragmentManage的实例。

Fragment类可被实现成各种各样的结果。它最核心的功能,它能够在大屏的Activity的一部分中运行特殊操作或者交互界面。Fragment是和所处的Activity紧密联系在一起的,并且是不能自己独立运作使用的。尽管Fragment拥有自己独立的生命周期,但是这些生命周期是完全依赖于所在Activity的生命周期的:如果Activity的生命周期是stopped,Activity包含的fragment没有一个可以处在started状态(被启动);当activity被销毁,activity中的Fragment都会被销毁。

所有的Fragment的子类必须包含一个无参的构造函数。系统Framework层在需要的时候会经常重新实例化Fragment,特别是在状态恢复的时候,需要能够找到这个无参的构造函数来实例化。如果无参构造函数不可用,当需要状态恢复某些情况下会发生运行时异常

下面我们将从下面几个方面讨论:

  • 老的版本(Old Platform)
  • 生命周期(Lifecycle)
  • 布局(Layout)
  • 后台栈(Back Stack)

老的版本

当Fragment被安卓3.0版本推出,更早版本的系统同样可以通过support包实现。更多细节可以查看相关博客

生命周期

尽管fragment的生命周期与activity的生命周期是紧密关联的,但是fragment在activity的标准生命周期下也是拥有自己的一些不同的生命周期。它包含像onResume这样的activity的基础的生命周期,但是那些与用户和activity进行交互的方法同样非常重要。

将Fragment带到resumed状态(可与用户进行交互)的一系列核心生命周期如下:

  • onAttach:在fragment与activity关联的时候被调用
  • onCreate:创建Fragment的时候被调用,用来做初始化工作的
  • onCreateView:创建并返回与Fragment关联的View
  • onActivityCreated:通知fragment它所在的activity完成了onCreate
  • onViewStateRestored:通知Fragment之前保存的视图层级的状态都被恢复了
  • onStart:使fragment被用户可见(基于所在的activity的状态是start)
  • onResume:使fragment可与用户进行交互(基于所在的activity是resume状态)

当fragment再也不被使用了,将经历下面的一系列方法:

  • onPause:fragment不再和用户进行交互了因为所在的activity是onPause状态或者调用fragement的操作去修改
  • onStop:fragment不可见,原因同上
  • onDestroyView:允许fragment清理view相关联的资源
  • onDestroy:让fragment通过这个方法做最后的清理工作
  • onDetach:当fragment与activity不再关联的时候会被立即调用

布局

fragment可被直接当做应用的一个布局使用,为了让你的的代码更好的支持模块化,为了让你更容易适配不同的设备屏幕。
例子此处省略。

后台栈

fragment的事物调度是activity内部的后台栈去维护的。当用户按返回键的时候,在activity被finish前,任何后台栈里的事物都会先被弹出。
例子此处省略

猜你喜欢

转载自blog.csdn.net/codeyanbao/article/details/81144206