Fragment创建及其生命周期
Posted 一点点征服
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fragment创建及其生命周期相关的知识,希望对你有一定的参考价值。
Fragments的生命周期
每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件。 对应生命周期可参考下图:
创建片元(Creating a Fragment)
To
create a fragment, you must create a subclass of Fragment (or an
existing subclass of it). The Fragment class has code that looks a lot
like an Activity. It contains callback methods similar to an activity,
such as onCreate(), onStart(), onPause(), and onStop(). In fact, if
you‘re converting an existing Android
application to use fragments, you might simply move code from your
activity‘s callback methods into the respective callback methods of your
fragment.
要创建一个fragment,必须创建一个fragment的子类(或是继承自它的子类)。fragment类的代
码看起来很像activity。它与activity一样都有回调函数,例如onCreate(),onStart(),onPause(),和
onStop()。事实上,如果你正在将一个现成的android应用转而使用Fragment来实现,可以简单的将代码从activity的回调函数移
植到各自的fragment回调函数中。
Usually, you should implement at least the following lifecycle methods:
一般情况下,你至少需要实现以下几个生命周期方法:
onCreate()
The
system calls this when creating the fragment. Within your
implementation, you should initialize essential components of the
fragment that you want to retain when the fragment is paused or stopped,
then resumed.
在创建fragment时系统会调用此方法。在实现代码中,你可以初始化想要在fragment中保持的那些必要组件(这里的组件是指除了view之外的东西,比如需要进行界面展示的关键数据),当fragment处于暂停或者停止状态之后可重新启用它们。
onCreateView()
The
system calls this when it‘s time for the fragment to draw its user
interface for the first time. To draw a UI for your fragment, you must
return a View from this method that is the root of your fragment‘s
layout. You can return null if the fragment does not provide a UI.
在第一次为fragment绘制用户界面时系统会调用此方法。为fragment绘制用户界面,这个函数必须要返回所绘出的fragment的根View。如果fragment没有用户界面可以返回空。
onPause()
The
system calls this method as the first indication that the user is
leaving the fragment (though it does not always mean the fragment is
being destroyed). This is usually where you should commit any changes
that should be persisted beyond the current user session (because the
user might not come back).
系统回调用该函数作为用户离开fragment的第一个预兆(尽管这并不总意味着fragment被销毁)。在当前用户会话结束之前,通常要在这里提交任何应该持久化的变化(因为用户可能不再返回)。
Most
applications should implement at least these three methods for every
fragment, but there are several other callback methods you should also
use to handle various stages of the fragment lifecycle. All the
lifecycle callback methods are discussed more later, in the section
about Handling the Fragment Lifecycle.
大部分应用程序都应该至少为每个fragment实现这三个方法,但是还有许多其他用以操纵fragment生命周期中各个阶段的回调函数。所有生命周期中的回调函数在操纵fragment生命周期一节中稍后再做讨论。
There are also a few subclasses that you might want to extend, instead of the base Fragment class:
除了基类fragment,这里还有几个你可能会继承的子类:
DialogFragment
Displays
a floating dialog. Using this class to create a dialog is a good
alternative to using the dialog helper methods in the Activity class,
because you can incorporate a fragment dialog into the back stack of
fragments managed by the activity, allowing the user to return to a
dismissed fragment.
显示一个浮动的对话框。使用这个类创建对话框是使用Activity类对话框工具方法之外的另一个不错的选择,因为你可以把fragment对话框并入到由activity管理的fragments后台栈中,允许用户返回到一个已经摒弃的fragment。
ListFragment
Displays
a list of items that are managed by an adapter (such as a
SimpleCursorAdapter), similar to ListActivity. It provides several
methods for managing a list view, such as the onListItemClick() callback
to handle click events.
显示一个由适配器管理的条目列表(例如SimpleCursorAdapter),类似于ListActivity。并且提供了许多管理列表视图的函数,例如处理点击事件的onListItemClick()回调函数。
PreferenceFragment
Displays
a hierarchy of Preference objects as a list, similar to
PreferenceActivity. This is useful when creating a "settings" activity
for your application.
显示一个Preference对象的体系结构列表,类似于preferenceActivity。这在为应用程序创建“设置”activity时是很实用的。
以上是关于Fragment创建及其生命周期的主要内容,如果未能解决你的问题,请参考以下文章
Activity和Fragment的生命周期及其各个阶段的状态