1. 继承关系java
java.lang.Objectandroid
|__android.app.Fragmentweb
实现接口:ComponentCallbacks2 View.OnCreateContextMenuListenerapp
引入版本:API Level 11模块化
已知的子类:布局
DialogFragment、ListFragment、PreferenceFragment、WebViewFragmentorm
2. 类概要对象
一个Fragment是应用程序的用户界面或行为的一个片断,它可以被放置在一个Activity中。经过FragmentManager对象来实现与Fragment对象的交互,可以经过Activity.getFragmentManager()方法和Fragment.getFragmentManager()方法来获取FragmentManager对象。继承
Fragment类有着普遍的应用,它的核心是表明了一个正在较大的Activity中运行的特俗的操做或界面。Fragment对象跟它所依附的Activity对象是紧密相关的,而且不能被分开使用。尽管Fragment对象定义了它们本身的生命周期,可是这个生命周期要依赖与它所在的Activity:若是该Activity被终止,那么它内部的Fragment是不能被启动的;当Activity被销毁时,它内部的全部Fragment对象都会被销毁。接口
全部的Fragment子类都必须包含一个公共的空的构造器。在须要的时候,Framework会常常从新实例化Fragment类,在特殊的状态恢复期间,须要可以找到这个构造器来实例化Fragment类。若是空的构造器无效,那么在状态恢复期间会致使运行时异常发生。
较旧的平台
尽管Fragment API是在HONEYCOMB版本中被引入的,可是经过FragmentActivity也可以在较旧的平台上使用该API。
声明周期
尽管Fragment对象的生命周期要依附于它所在的Activity对象,可是它也有本身标准的活动周期,它包含了基本的活动周期方法,如onResume(),可是同时也包含了与Activity和UI交互相关的重要方法。
显示Fragment时(跟用户交互)要调用的核心的生命周期方法以下:
1. 把Fragment对象跟Activity关联时,调用onAttach(Activity)方法;
2. Fragment对象的初始建立时,调用onCreate(Bundle)方法;
3. onCreateView(LayoutInflater, ViewGroup, Bundle)方法用于建立和返回跟Fragment关联的View对象;
4. onActivityCreate(Bundle)方法会告诉Fragment对象,它所依附的Activity对象已经完成了Activity.onCreate()方法的执行;
5. onStart()方法会让Fragment对象显示给用户(在包含该Fragment对象的Activity被启动后);
6. onResume()会让Fragment对象跟用户交互(在包含该Fragment对象的Activity被启恢复后)。
Fragment对象再也不使用时,要反向回调的方法:
1. 由于Fragment对象所依附的Activity对象被挂起,或者在Activity中正在执行一个修改Fragment对象的操做,而致使Fragment对象再也不跟用户交互时,系统会调用Fragment对象的onPause()方法;
2. 由于Fragment对象所依附的Activity对象被终止,或者再Activity中正在执行一个修改Fragment对象的操做,而致使Fragment对象再也不显示给用户时,系统会调用Fragment对象的onStop()方法。
3. onDestroyView()方法用于清除跟Fragment中的View对象关联的资源;
4. Fragment对象的状态被最终清理完成以后,要调用onDestroy()方法;
5. 在Fragment对象再也不跟它依附的Activity关联的时候,onDetach()方法会当即被调用。
布局
Fragment对象可以被用于应用程序的布局,它会让代码的模块化更好,而且针对Fragment所运行的屏幕,让用户界面的调整更加容易。例如,一个简单的由项目列表和项目明细表示所组成的程序。