要创建一个Fragment,你必须创建一个Fragment的子类(或一个既存的Fragment的子类)。Fragment类的代码看上去有点象Activity,它包含了类似Activity的的回调方法,如onCreate()、onStart()、onPause()和onStop()方法。实际上,如果你正在把一个既存的Android应用程序转换成使用Fragment的应用程序,你只需简单的把Activity的回调方法的代码移到各自的Fragment的回调方法中。
通常,至少应该实现下列生命周期方法:
onCreate()
当创建Fragment时系统调用这个方法。在你的实现中,你应该初始化哪些在Fragment暂停态、终止态、和恢复态时想要保持状态的的Fragment组件。
onCreateView()
当第一次用Fragment来描画用户界面时,系统调用这个方法。要用你的Fragment来描画一个UI界面,你必须从这个方法中返回一个View,这个View是Fragment布局的根。如果Fragment没有提供UI界面,那么它返回一个null。
onPause()
在用户要离开Fragment的第一时刻系统会调用这个方法(但这并意味着Fragment要被销毁)。通常应该在这儿提交本次用户会话之外的要持久化的改变(因为用户可能不在回来)。
对于每个Fragment,大多数应用程序应该至少实现这三个方法,但是你也应该使用其它的回调方法来处理Fragment生命周期的各种状态。全部的生命周期回调方法将在随后的处理Fragment生命周期(Handing the Fragment Lifecycle)章节中进行更多的讨论。
你可能想要扩展一些子类,而不是基于Fragment类:
DialogFragment
显示一个浮动的对话框,使用这个类创建一个在Activity类中使用对话帮助器的对话框是一个好的选择,因为你能够把一个Fragment对话框纳入到Activity管理的Fragment的回退堆栈中,允许用户返回到被废止的Fragment。
ListFragment
显示一个被类似ListActivity的适配器管理的项目列表(如SimpleCursorAdapter)。它为管理一个列表View提供几个方法,如用来处理Click事件的onListItemClick()回调方法。
PreferenceFragment
显示一个引用对象的层次树列表,类似于PreferenceActivity。当给应用程序创建设置Activity时,这是有用的。

图2 Fragment的生命周期(Activity正在运行时)
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar
分享到:
相关推荐
- 可以通过菜单栏的"File" -> "New" -> "Fragment"快速创建Fragment。 - 在Activity的布局文件中,使用拖拽方式添加FrameLayout作为Fragment容器。 - 在代码中,可以直接引用生成的Fragment类和其对应的XML布局。...
在Android应用开发中,Fragment是UI组件的一种,它允许我们构建可重用的模块化界面。Fragment可以在Activity中动态添加、删除或替换,这在设计适应不同屏幕尺寸和配置的应用时非常有用。当我们想要增强用户体验,使...
在Android应用开发中,Fragment是UI组件的一种,用于在大屏幕设备上实现多屏或复合视图。Fragment可以在Activity之间动态地添加、移除或替换,使得应用在不同屏幕尺寸和配置下都能提供良好的用户体验。"Android ...
【标签】:“Mystra Android ToDoList Fragment 代码”标签表明这个项目可能由Mystra这个开发者或者团队创建,专注于Android平台。"ToDoList"是项目的主题,"Fragment"强调了实现的关键技术,而“代码”则说明了提供...
解决Fragment换肤在某些版本的support-v4包下失效的问题(感谢@javake同学)(2015-12-02) 对textColor加入selector类型的资源的换肤支持(感谢@pinotao同学) (2015-09-26) 添加在代码中创建的View的换肤支持 (2015-...
标题中的"navigation-keep-fragment-sample"暗示了这是一个关于Android应用程序开发的项目,特别是与导航组件(Navigation Component)和Fragment管理相关的。在这个示例中,开发者可能探讨了如何在使用Android ...
"android-fragment-demo"项目是一个很好的起点,它展示了如何在Android应用中使用和管理片段。以下是对这个项目及其相关知识点的详细解释。 **1. Android Fragments概述** 片段是Android 3.0 (API Level 11) 引入的...
在Android应用开发中,Fragment是Android SDK中的一个重要组件,它允许开发者在单个活动中管理和展示多个界面。Fragment动画效果则是提升用户体验、增加应用交互性的一种重要手段。本资源"Android--开发--Fragment...
// 创建Fragment实例 Fragment fragment = null; try { fragment = fragmentClass.newInstance(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } if (fragment !...
- `AndroidFragment.zip`可能包含一个基础的Android Fragment项目,用于学习Fragment的基础用法和实践。 7. **Fragment在不同版本上的兼容性**: - 从Android 3.0(API级别11)开始引入Fragment,但通过Android ...
1. **创建Fragment**: 首先,为每个需要显示的页面创建一个Fragment类。每个Fragment都应该包含它的布局和业务逻辑。例如,我们可以创建`Fragment1`、`Fragment2`等,每个都具有自己的XML布局文件。 2. **创建...
在Android开发中,Fragment是应用程序界面的一个模块化组件,它可以在Activity中承载用户界面部分,使得开发者能够构建更复杂、可重用的布局。"Android代码-安卓原生Fragment演示"是一个项目,专注于展示如何在...
1. **创建Fragment布局**:首先,我们需要为每个要添加的Fragment创建对应的XML布局文件,例如`fragment_left.xml`和`fragment_right.xml`。这些布局文件会定义Fragment的视图结构。 2. **在Activity布局中声明...
综上所述,`android-fragment-retrofit`这个项目可能是关于如何在Android应用中结合使用`Fragment`和`Retrofit`来构建网络数据驱动的界面。通过合理利用这两个组件,开发者可以创建出功能强大、用户体验良好的应用...
2.1 创建 Fragment 2.2 Fragment 管理 2.3 Fragment 与 Activity 通讯 2.4 Fragment 示例 三、Android Fragment 示例讲解二 3.1 项目的效果图 3.2 项目结构图与内容分析 3.4 面板的实现 四、Android ...
在Android Studio中,可以通过`new -> Fragment`来创建一个新的Fragment类。然后在Activity的布局文件中使用`<fragment>`标签或者通过Java代码动态添加Fragment。例如: ```xml <fragment android:name=...
这个项目“android-fragment-viewtree”提供了一个深入理解Android片段(Fragment)生命周期和视图树(ViewTree)的示例。下面将详细阐述相关知识点。 首先,我们来了解**Fragment**的概念。Fragment是一个可以包含...
2.1 创建Fragment 2.2 Fragment 管理 2.3 Fragment 与Activity 通讯 2.4 Fragment 示例 三、Android Fragment示例讲解二 3.1 项目的效果图 3.2 项目结构图与内容分析 3.4 面板的实现 四、Android Fragment...
通过以上步骤,你可以为Android中的Fragment创建出丰富多彩的动画切换效果,为用户提供更加生动和交互性的体验。在实际项目中,可以根据需求调整动画细节,如动画持续时间、延迟、缩放比例等,以满足特定的设计要求...
在 Activity 中,我们需要创建两个 Fragment 的实例,并将其添加到 FragmentList 中: ```java private OneFragment oneFragment; private TwoFragment twoFragment; oneFragment = new OneFragment(); twoFragment...