Fragment 片段是一个活动的一部分,可以实现更模块化的活动设计。 如果我们说,片段是一种子活动,那也没错。

以下是关于片段的要点 −

  • 片段有自己的布局和自己的行为以及自己的生命周期回调。
  • 您可以在活动运行时在活动中添加或删除片段。
  • 您可以在单个活动中组合多个片段以构建多窗格 UI。
  • 一个片段可以用于多个活动。
  • 片段的生命周期与其宿主 Activity 活动的生命周期密切相关,即当活动暂停时,该活动中所有可用的片段也将停止。
  • 片段可以实现没有用户界面组件的行为。
  • 在 API 版本 11 的 Honeycomb 版本的 Android 中将片段添加到 Android API。

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

在引入片段之前,我们有一个限制,因为我们只能在给定时间点在屏幕上显示单个活动。所以我们无法分割设备屏幕并分别控制不同的部分。但是随着片段的引入,我们获得了更大的灵活性,并消除了一次在屏幕上只有一个活动的限制。现在我们可以有一个单独的活动,但每个活动可以由多个片段组成,这些片段将有自己的布局、事件和完整的生命周期。

以下是一个典型示例,说明如何将片段定义的两个 UI 模块组合成一个活动以用于平板电脑设计,而将其分开用于手机设计。

Android - 片段_UI


当在平板大小的设备上运行时,应用程序可以在 Activity A 中嵌入两个片段。但是,在手机大小的屏幕上,两个片段都没有足够的空间,所以 Activity A 只包含文章列表的片段,当用户选择文章时,它会启动 Activity B,其中包含要阅读的第二个片段 文章。


片段生命周期

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

Android - 片段_生命周期_02


片段生命周期

这是您可以在片段类中覆盖的方法列表 −

  • onAttach() 片段实例与活动实例相关联。片段和活动未完全初始化。 通常,您会在此方法中获得对使用片段进行进一步初始化工作的活动的引用。
  • onCreate() 系统在创建片段时调用此方法。 您应该初始化要在片段暂停或停止然后恢复时保留的片段的基本组件。
  • onCreateView() 当片段第一次绘制其用户界面时,系统会调用此回调。 要为您的片段绘制 UI,您必须从此方法返回一个 View 组件,该组件是片段布局的根。 如果片段不提供 UI,您可以返回 null。
  • onActivityCreated() onActivityCreated() 在创建宿主活动时在 onCreateView() 方法之后调用。已创建活动和片段实例以及活动的视图层次结构。 此时,可以使用 findViewById() 方法访问视图。 例子。 在此方法中,您可以实例化需要 Context 对象的对象
  • onStart() 一旦片段可见,就会调用 onStart() 方法。
  • onResume() 片段变得活跃。
  • onPause() 系统调用此方法作为用户离开片段的第一个指示。 这通常是您应该提交任何应该在当前用户会话之后持久化的更改的地方。
  • onStop() 通过调用 onStop() 将停止片段
  • onDestroyView() 调用此方法后片段视图将销毁
  • onDestroy() 调用 onDestroy() 以对片段的状态进行最终清理,但不保证会被 Android 平台调用。

如何使用片段?

这涉及创建片段的许多简单步骤。

  • 首先决定你想在一个活动中使用多少个片段。 例如,让我们想使用两个片段来处理设备的横向和纵向模式。
  • 接下来根据片段的数量,创建将扩展 Fragment 类的类。Fragment 片段类具有上述回调函数。 您可以根据您的要求覆盖任何功能。
  • 对应于每个片段,您将需要在 XML 文件中创建布局文件。 这些文件将具有已定义片段的布局。
  • 最后修改活动文件以根据您的要求定义替换片段的实际逻辑。

片段类型

片段基本上分为三个阶段,如下所示。

  • 单帧片段 − 单帧片段用于手机等手持设备,这里我们只能将一个片段显示为视图。
  • 列表片段 − 具有特殊列表视图的片段称为列表片段
  • 片断过渡 − 与片断过渡一起使用。 我们可以将一个片段移动到另一个片段。