• Android Video Tutorials

Android - 碎片



碎片是活动的一部分,它使得活动设计更加模块化。我们可以说,碎片是一种子活动

以下是关于碎片的重要几点:

  • 碎片有自己的布局和行为,以及自己的生命周期回调。

  • 在活动运行期间,可以向活动中添加或移除碎片。

  • 可以在单个活动中组合多个碎片来构建多窗格 UI。

  • 碎片可以在多个活动中使用。

  • 碎片的生命周期与其宿主活动的 生命周期密切相关,这意味着当活动暂停时,活动中所有可用的碎片也将停止。

  • 碎片可以实现没有用户界面组件的行为。

  • 碎片在 Android 的 Honeycomb 版本(API 版本 11)中添加到 Android API 中。

通过扩展Fragment类来创建碎片,可以通过在活动的布局文件中声明碎片作为<fragment>元素将其插入到活动的布局中。

在引入碎片之前,我们有一个限制,因为我们一次只能在屏幕上显示一个活动。因此,我们无法单独划分设备屏幕并控制不同的部分。但是,随着碎片的引入,我们获得了更大的灵活性,并取消了在屏幕上一次只能拥有一个活动的限制。现在我们可以拥有单个活动,但每个活动可以包含多个碎片,这些碎片将拥有自己的布局、事件和完整的生命周期。

以下是如何将由碎片定义的两个 UI 模块组合到平板电脑设计的一个活动中,但在手机设计中将其分开的一个典型示例。

Android Fragment

在平板电脑大小的设备上运行时,应用程序可以在活动 A 中嵌入两个碎片。但是,在手机大小的屏幕上,没有足够的空间容纳这两个碎片,因此活动 A 只包含文章列表的碎片,当用户选择一篇文章时,它启动活动 B,其中包含第二个碎片来阅读文章。

碎片生命周期

Android 碎片有自己的生命周期,与 Android 活动非常相似。本节简要介绍其生命周期的不同阶段。

Fragment

碎片生命周期

以下是您可以在碎片类中重写的方法列表:

  • onAttach()碎片实例与活动实例关联。碎片和活动尚未完全初始化。通常,您在此方法中获得对使用碎片的活动的引用,以便进行进一步的初始化工作。

  • onCreate()创建碎片时,系统会调用此方法。您应该在此处初始化碎片的重要组件,以便在碎片暂停或停止后再恢复时保留这些组件。

  • onCreateView()当碎片第一次绘制其用户界面时,系统会调用此回调。要为碎片绘制 UI,必须从此方法返回一个作为碎片布局根的View组件。如果碎片不提供 UI,则可以返回 null。

  • onActivityCreated()在宿主活动创建后,调用onActivityCreated()方法。活动和碎片实例以及活动的视图层次结构都已创建。此时,可以使用findViewById()方法访问视图。例如,您可以在此方法中实例化需要Context对象的對象。

  • onStart()碎片可见后调用onStart()方法。

  • onResume()碎片变为活动状态。

  • onPause()系统将此方法作为用户离开碎片的第一个指示调用。通常,您应该在此处提交在当前用户会话之外应持久保存的任何更改。

  • onStop()调用onStop()停止碎片。

  • onDestroyView()调用此方法后,碎片视图将被销毁。

  • onDestroy()调用onDestroy()以对碎片的状态进行最终清理,但Android平台不保证调用此方法。

如何使用碎片?

这涉及创建碎片的几个简单步骤。

  • 首先,确定要在活动中使用多少个碎片。例如,我们想使用两个碎片来处理设备的横向和纵向模式。

  • 接下来,根据碎片的数量,创建扩展Fragment类的类。Fragment类具有上述回调函数。您可以根据需要重写任何函数。

  • 对于每个碎片,都需要在XML文件中创建布局文件。这些文件将具有为定义的碎片提供的布局。

  • 最后,修改活动文件以定义根据您的需求替换碎片的实际逻辑。

碎片类型

基本上,碎片分为如下三个阶段:

  • 单帧碎片 - 单帧碎片用于手机等手持设备,在此我们只能显示一个碎片作为视图。

  • 列表碎片 - 具有特殊列表视图的碎片称为列表碎片。

  • 碎片事务 - 使用碎片事务,我们可以将一个碎片移动到另一个碎片。

广告