在 Android 中,Fragment 是一种可以嵌入在 Activity 中的组件,它允许在单个 Activity 中构建更灵活和模块化的用户界面。一个 Activity 可以包含一个或多个 Fragment,而每个 Fragment 可以有自己的用户界面、生命周期和行为。
特点和用途:
复用性: Fragments 可以被多个 Activity 共享,从而实现 UI 组件的重用。
模块化: 使用 Fragment 可以将 UI 划分为更小、更可管理的块,便于开发和维护。
灵活性: Fragments 允许在不同的屏幕尺寸和设备方向中重用相同的 UI 块,以适应不同的设备和屏幕布局。
区别:
生命周期:
- Activity 拥有自己的生命周期方法,如
onCreate()
、onStart()
、onResume()
等。 - Fragment 也有类似的生命周期方法,但它们是在包含它的 Activity 的生命周期内调用的。
- Activity 拥有自己的生命周期方法,如
UI 呈现:
- Activity 通常是一个完整的用户界面,可以包含多个 Fragment,但它也可以没有任何 Fragment。
- Fragment 通常代表 Activity 的一部分用户界面,可以嵌套在 Activity 的布局中。
交互:
- Activity 之间的通信可以通过 Intent 实现,也可以通过 startActivityForResult() 和 onActivityResult() 方法来获取结果。
- Fragment 之间的通信通常通过它们共享的 Activity 来实现,可以通过 Activity 来传递数据或调用对方的方法。
创建和销毁:
- Activity 是通过 startActivity() 来启动的,通常会占用整个屏幕。
- Fragment 通常是在布局中静态或动态地添加的,可以共享 Activity 的屏幕空间。
适用场景:
- 使用 Activity 通常用于表示整个应用的主要屏幕,而 Fragment 更适合表示应用中的一部分界面。
在实际开发中,Activity 和 Fragment 通常结合使用,以实现更灵活和可维护的用户界面。例如,一个 Activity 可能包含多个 Fragment,每个 Fragment 负责特定的 UI 元素或功能,这样可以更好地组织代码并实现模块化。