一个 Fragment
表示应用 UI 中可重复使用的部分。Fragment 定义并管理其自己的布局,拥有其自己的生命周期,并且可以处理其自己的输入事件。Fragment 不能单独存在。它们必须由 Activity 或另一个 Fragment 托管。Fragment 的视图层级结构成为宿主视图层级结构的一部分,或 附加 到宿主视图层级结构。
模块化
Fragment 通过将 UI 划分为离散的块,为 Activity 的 UI 引入了模块化和可重用性。Activity 是放置应用用户界面周围全局元素的理想场所,例如导航抽屉。相反,Fragment 更适合定义和管理单个屏幕或屏幕一部分的 UI。
设想一个能响应各种屏幕尺寸的应用。在较大的屏幕上,您可能希望应用显示一个静态导航抽屉和一个网格布局中的列表。在较小的屏幕上,您可能希望应用显示一个底部导航栏和一个线性布局中的列表。
在 Activity 中管理这些变化是很笨拙的。将导航元素与内容分离可以使这个过程更易于管理。Activity 负责显示正确的导航 UI,而 Fragment 则显示具有适当布局的列表。

将 UI 划分为 Fragment 可以更轻松地在运行时修改 Activity 的外观。当您的 Activity 处于 STARTED
生命周期状态或更高状态时,可以添加、替换或移除 Fragment。您可以在由 Activity 管理的返回堆栈中记录这些更改,以便可以撤消这些更改。
您可以在同一个 Activity、多个 Activity 中,甚至作为另一个 Fragment 的子 Fragment 来使用同一个 Fragment 类的多个实例。考虑到这一点,只需为 Fragment 提供管理其自身 UI 所需的逻辑。避免在一个 Fragment 中依赖或操作另一个 Fragment。
后续步骤
有关 Fragment 的更多文档和资源,请参阅以下内容。
开始
更多主题
- Fragment 管理器
- Fragment 事务
- 使用动画在 Fragment 之间导航
- Fragment 生命周期
- 使用 Fragment 保存状态
- 与 Fragment 通信
- 使用应用栏
- 使用 DialogFragment 显示对话框
- 调试您的 Fragment
- 测试您的 Fragment