Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面介绍下Android Fragment的作用和用法。Fragment用来描述一些行为或一部分用户界面在一个Activity中,你可以合并多个fragment在一个单独的activity中建立多个UI面板,同时重用fragment在多个activity中.你可以认为fragment作为一个activity中的一节模块 ,fragment有自己的生命周期,接收自己的输入事件,你可以添加或移除从运行中的activity.
一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity而影响,举个例子吧,当activity 暂停,那么所有在这个activity的fragments将被destroy释放。然而当一个activity在运行比如resume时,你可以单独的操控每个fragment,比如添加或删除。
Fragment作为Android 3.0的新特性,有些功能还是比较强大的,比如 合并两个Activity,如图
我们可以看到两个Activity通过两个Fragment合并到一个Activity的布局方式,对于平板等大屏幕设备来说有着不错的展示面板。不过因为Fragment和Activity的生命周期都比较复杂,我们分别对比下:
创建一个fragment你必须创建一个Fragment的子类或存在的子类,比如类似下面的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.android_fragment, container, false);
}
}
Fragment类的一些代码看起来有些像Activity为了让大家了解清楚,Android开发网给大家整理下Fragment的生命周期如上图所示,部分类似Activity的,我们详细解释
onCreate()
当fragment创建时被调用,你应该初始化一些实用的组件,比如在fragment暂停或停止时需要恢复的
onCreateView()
当系统调用fragment在首次绘制用户界面时,如果画一个UI在你的fragment你必须返回一个View当然了你可以返回null代表这个fragment没有UI.
那么如何添加一个Fragment到Activity中呢? Activity的布局可以这样写
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment android:name="com.android.cwj.ArticleListFragment"
android:id="@+id/list"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<fragment android:name="com.android.cwj.ArticleReaderFragment"
android:id="@+id/viewer"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
最后提醒大家Fragment存在于Activity的ViewGroup中,按照继承关系大家就可以了解他的结构。
相关推荐
【Android中文翻译组——Android中文合集(6)】 这个合集主要涵盖了Android开发中的多个重要知识点,由Android中文翻译组精心编译和翻译,旨在为国内开发者提供更易理解和使用的中文资源。以下是对其中一些关键...
在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...
在Android应用开发中,碎片(Fragment)是一种可重用的UI组件,它可以嵌入到活动(Activity)中,使得在不同屏幕尺寸和配置下能够更好地展示内容。碎片间的交互是Android应用设计中不可或缺的一部分,特别是在构建...
当你执行这样一项事务时,可以将它添加到后台的一个栈中,这个栈由activity管理着——activity里面的每个后台栈内容实体是fragment发生过的一条事务记录。这个后台栈允许用户通过按BACK键回退一项fragment事务(往后...
8. **碎片(Fragment)**:Fragment是用于支持多屏幕适配的组件,可以在Activity中嵌入,方便在不同尺寸的屏幕上展示复杂布局。 9. **通知(Notification)**:Notification是向用户显示非侵入性消息的机制,即使...
碎片是Android 3.0(API级别11)引入的一种组件,它可以独立于Activity存在,有自己的生命周期和UI。它们可以在多个屏幕、多面板布局,甚至平板电脑和手机之间共享。碎片的主要目的是提高代码的可复用性和应用程序的...
本项目“安卓Android源码——基于Fragment实现Tab的切换,滑出侧边栏.zip”显然是一个示例,演示了如何使用Fragment来创建一个多标签导航界面,并结合侧滑菜单实现更丰富的用户交互。 1. **Fragment基础**: - ...
在Android应用开发中,"碎片"(Fragment)是Android 3.0(API级别11)引入的一个重要组件,用于创建动态和可重用的UI片段。本篇笔记将深入探讨碎片的概念、用途以及如何在实际项目中使用碎片。通过学习这篇笔记,你...
在Android应用开发中,"碎片"(Fragment)是Android 3.0版本引入的一个重要组件,它是Activity的一个模块化部分,可以独立存在并被插入到Activity的不同布局位置。本篇学习笔记将深入探讨碎片的生命周期,这对于理解...
"Android应用案例开发大全——源码.rar"提供了一套宝贵的实践项目,适合开发者深入理解Android应用的构建过程。这个压缩包包含了书后12个案例的完整源码,为初学者和有经验的开发者提供了丰富的学习材料。 首先,...
八、碎片(Fragment) Fragment是用于构建可重用的UI模块,尤其在多屏幕适配中发挥重要作用。理解Fragment的生命周期,以及如何在Activity中添加和管理Fragment,对于开发支持平板和手机的应用至关重要。 九、数据...
在本资源中,"Android项目之——页面特效集合(附源码)(实用1).zip",我们聚焦于Android应用程序开发中的页面特效实现。这个压缩包包含了一系列实用且有趣的源码,非常适合用作毕业设计或课程设计的参考,旨在帮助...
这个Activity可能会继承自Android的`AppCompatActivity`或`FragmentActivity`,并包含一个TextView或自定义的布局来展示文本。TextView是Android系统中内置的用于显示文本的控件,它可以处理各种文本格式和样式。 ...
Android Support Library v4的25.3.1版本,作为一个重要的更新,不仅加强了权限请求的处理,还改进了FragmentActivity和ViewPager的功能,使得开发者能够更高效、更稳定地开发面向广泛Android设备的应用。...
在本项目中,"Android源码——仿开心网源代码.zip" 提供了一个学习和研究Android应用程序开发的机会,特别是对于那些对社交网络应用设计感兴趣的人来说。这个压缩包包含了一个模仿开心网(Kaixin001)功能的Android...
源码中的"Android 驴友社交系统源码"可能包含了许多Activity(活动)、Fragment(碎片)、Adapter(适配器)等核心组件,它们是构建用户界面的主要元素。例如,Activity是用户与应用交互的窗口,而Fragment可以用来...
3. **Fragment**: 在Android中,Fragment表示UI的一部分,可以在Activity之间共享,这对于实现TabHost中的各个页面切换非常有用。 4. **Adapter模式**: 为了将数据与UI组件绑定,通常会使用Adapter,如BaseAdapter...
4. **页面碎片**(如`Fragment1.java`, `Fragment2.java`):如果使用了Fragment,每个页面可能对应一个Fragment类,包含页面的具体内容。 5. **资源文件**(如`drawable`, `values`等):可能包含图片、颜色、字符...
本Demo——"android碎片Demo",旨在全面展示`Fragment`的使用方法,包括静态和动态的添加、数据交互以及生命周期管理。 首先,我们来探讨`Fragment`的静态使用。在布局XML文件中,可以通过`<fragment>`标签直接声明...
6. **碎片(Fragment)和活动(Activity)**: - 在Android应用中,可以使用`Fragment`来实现类似Windows 8应用中的“动态磁贴”行为,每个`Fragment`代表一个独立的功能模块。 - 通过`FragmentManager`管理`...