2012-10-23 09:19 1310人阅读 评论(0) 收藏 举报
Fragment是activity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面并且你可以在多个activity中重用一个Fragment。你可以把Fragment认为模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。
Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),你可以单独地操作每个Fragment,比如添加或删除它们。当你在执行上述针对Fragment的事务时,你可以将事务添加到一个棧中,这个栈被activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。
当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。你可以在layoutxml文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为actvitiy工作。
接下来讲如何使用fragment,包括fragment在加入activity的后退棧中时如何保持自己的状态,如何与activity以及其它fragment们共享事件,如何显示在activity的动作栏,等等。
Android从3.0开始引入fragment,主要是为了支持更动态更灵活的界面设计,比如在平板上的应用。平板机上拥有比手机更大的屏幕空间来组合和交互界面组件们。Fragment使你在做那样的设计时,不需应付view树中复杂的变化。通过把activity的layout分成fragment,你可以在activity运行时改变它的样子,并且可以在activity的后退栈中保存这些改变。
例如:写一个读新闻的程序,可以用一个fragment显示标题列表,另一个fragment显示选中标题的内容,这两个fragment都在一个activity上,并排显示。那么这两个fragment都有自己的生命周期并响应自己感兴趣的事件。于是,不需再像手机上那样用一个activity显示标题列表,用另一个activity显示新闻内容;现在可以把两者放在一个activity上同时显示出来。
Fragment必须被写成可重用的模块。因为fragment有自己的layout,自己进行事件响应,拥有自己的生命周期和行为,所以你可以在多个activity中包含同一个Fragment的不同实例。这对于让你的界面在不同的屏幕尺寸下都能给用户完美的体验尤其重要。比如你可以在程序运行于大屏幕中时启动包含很多fragment的activity,而在运行于小屏幕时启动一个包含少量fragment的activity。
举个例子--还是刚才那个读新闻的程序-当你检测到程序运行于大屏幕时,启动activityA,你将标题列表和新闻内容这两个fragment都放在activityA中;当检测到程序运行于小屏幕时,还是启动activityA,但此时A中只有标题列表fragment,当选中一个标题时,activityA启动activityB,B中含有新闻内容fragment。
相关推荐
一、Android Support Library v4概述 Android Support Library v4,简称v4库,是Google提供的一系列库中的一个,旨在帮助开发者实现跨版本的兼容性。v4库主要关注的是为低版本Android系统提供新API的功能,包括...
### Android的Fragment知识点详解 #### 一、Fragment概述 Fragment是一种可以嵌入到Activity中的UI片段,它可以被视为Activity的一部分,但具有自己的生命周期和输入事件。通过Fragment,开发者可以在同一个...
一、Android Support Library概述 Android Support Library是一系列的库,它们提供对某些新功能的后向兼容,使得开发者无需依赖特定的Android版本即可使用新特性。v13是其中的一个版本,主要关注的是对Fragment的...
一、xUtils概述 xUtils的核心设计理念是简化Android开发过程中的各种常见任务,例如网络请求、图片处理、数据库操作等。它的模块化设计使得开发者可以根据需求选择性地引入相关组件,避免了不必要的资源浪费。...
QMUI Android 是一款专为提高 Android 平台 UI 开发效率而设计的开源库。它由腾讯团队开发并维护,在 GitHub 上公开发布,旨在帮助开发者减少基础代码的编写工作,将更多精力集中于业务逻辑之上。无论是新项目的创建...
#### 一、引言与概述 随着移动应用的日益复杂,良好的页面导航设计成为提升用户体验的关键因素之一。Kotlin Navigation作为JetPack中的一个重要组件,提供了强大的可视化工具和API支持,使得开发者能够更加轻松地...
### Android中的Fragment生命周期详解 在Android开发中,`Fragment`是一种可以嵌入到`Activity`中的用户界面片段,它可以被重用在多个活动中,并且能够独立管理自己的生命周期。理解`Fragment`的生命周期对于构建...
一、Android Support Library概述 Android Support Library是一系列库,由Google提供,旨在扩展Android API的功能,使其能够支持更低版本的Android操作系统。这些库包括多个模块,如v4、v7等,每个模块都专注于不同...
### Fragment详解 #### 一、Fragment概述 **Fragment** 是Android平台中的一种组件,自Android 3.0(API Level 11)起引入。它主要用于构建动态且灵活的用户界面,尤其适用于大屏幕设备如平板电脑。一个Fragment...
Android Fragment是Android应用程序开发中的一个重要概念,它是在Android 3.0(API级别11)引入的,旨在增强用户体验和适应不同屏幕尺寸的设备。Fragment是Activity用户界面的一部分,允许开发者构建更复杂、更具...
一、Android Studio 4.2.2特性概述 Android Studio 4.2.2是一个重要的更新,它带来了一系列优化和新特性,旨在提升开发者的效率和用户体验。主要特点包括: 1. **JetBrains IDE核心升级**:基于JetBrains IntelliJ...
**baas.io Android SDK 帮助中心 UI 库与示例项目详解** 在移动应用开发中,提供清晰、易用的帮助中心对于提升用户体验至关重要。`baas.io-helpcenter-android` 是一个专为 Android 平台设计的 SDK,旨在简化开发者...
### Android面试知识点详解 #### 一、Android DVM与Linux进程关系 - **知识点概述**: - **DVM(Dalvik Virtual Machine)**:每个Android应用在其内部运行着一个独立的DVM实例。 - **Linux进程**:在Android...
### Android Studio 实现考试管理系统知识点概述 #### 一、项目背景及需求分析 - **背景**:近年来,受到全球疫情的影响,许多学校开始采取在线教学模式。为了适应这种新的教学方式,开发一套能够支持在线考试的...
一、安卓支持库v4概述 `android-support-v4.jar`库包含了大量适用于所有API级别的类和方法,它能够帮助开发者在低版本的Android系统上实现高级功能,如碎片(Fragments)、Loader、BroadcastReceiver等。由于早期的...
根据提供的标题...通过以上概述可以看出,《Android应用开发详解》这本书旨在全面覆盖Android应用开发的各个方面,从基础知识到高级特性均有涉猎,对于想要学习Android开发的新手来说是一本非常实用的入门指南。
#### 一、ViewPage组件概述 `ViewPage`是Android平台中的一个组件,主要用于实现水平方向上的页面切换效果。它通常与`PagerAdapter`一起使用,来支持不同类型的Fragment之间的切换。在Android开发中,`ViewPage`常...
### Android系统概述 Android是由Google公司领导并开发的一款基于Linux内核的操作系统。它最初是为了移动设备设计的,如智能手机和平板电脑等,但现在也被广泛应用于智能电视、可穿戴设备等多种平台。Android以其...