Android基础知识:什么是Fragment?与Activity的区别是什么?

简介: Android基础知识:什么是Fragment?与Activity的区别是什么?

在 Android 中,Fragment 是一种可以嵌入在 Activity 中的组件,它允许在单个 Activity 中构建更灵活和模块化的用户界面。一个 Activity 可以包含一个或多个 Fragment,而每个 Fragment 可以有自己的用户界面、生命周期和行为。

特点和用途:

  1. 复用性: Fragments 可以被多个 Activity 共享,从而实现 UI 组件的重用。

  2. 模块化: 使用 Fragment 可以将 UI 划分为更小、更可管理的块,便于开发和维护。

  3. 灵活性: Fragments 允许在不同的屏幕尺寸和设备方向中重用相同的 UI 块,以适应不同的设备和屏幕布局。

区别:

  1. 生命周期:

    • Activity 拥有自己的生命周期方法,如 onCreate()onStart()onResume() 等。
    • Fragment 也有类似的生命周期方法,但它们是在包含它的 Activity 的生命周期内调用的。
  2. UI 呈现:

    • Activity 通常是一个完整的用户界面,可以包含多个 Fragment,但它也可以没有任何 Fragment。
    • Fragment 通常代表 Activity 的一部分用户界面,可以嵌套在 Activity 的布局中。
  3. 交互:

    • Activity 之间的通信可以通过 Intent 实现,也可以通过 startActivityForResult() 和 onActivityResult() 方法来获取结果。
    • Fragment 之间的通信通常通过它们共享的 Activity 来实现,可以通过 Activity 来传递数据或调用对方的方法。
  4. 创建和销毁:

    • Activity 是通过 startActivity() 来启动的,通常会占用整个屏幕。
    • Fragment 通常是在布局中静态或动态地添加的,可以共享 Activity 的屏幕空间。
  5. 适用场景:

    • 使用 Activity 通常用于表示整个应用的主要屏幕,而 Fragment 更适合表示应用中的一部分界面。

在实际开发中,Activity 和 Fragment 通常结合使用,以实现更灵活和可维护的用户界面。例如,一个 Activity 可能包含多个 Fragment,每个 Fragment 负责特定的 UI 元素或功能,这样可以更好地组织代码并实现模块化。

相关文章
|
4月前
Android.mk(makefile)中几个符号的区别:=、 :=、 ?=、 +=
本文解释了在Android.mk文件中使用的几种赋值符号的区别,包括`=`(基本赋值)、`:=`(覆盖赋值)、`?=`(条件赋值,仅在变量未赋值时操作)、`+=`(追加赋值),并通过实验演示了这些符号的具体行为和效果。
212 1
|
3月前
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
193 93
|
2月前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
94 6
|
2月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
28 3
|
2月前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
24 3
|
2月前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
18 0
|
3月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
54 4
|
4月前
|
XML Android开发 数据格式
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
本文通过案例分析了在Android中当两个Activity都设置了`android.intent.category.LAUNCHER`类别时,会导致它们同时在应用启动器的"所有应用"页面显示为不同的启动入口。
95 2
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
|
3月前
|
Android开发 开发者
Android面试之Activity启动流程简述
每个Android开发者都熟悉的Activity,但你是否了解它的启动流程呢?本文将带你深入了解。启动流程涉及四个关键角色:Launcher进程、SystemServer的AMS、应用程序的ActivityThread及Zygote进程。核心在于AMS与ActivityThread间的通信。文章详细解析了从Launcher启动Activity的过程,包括通过AIDL获取AMS、Zygote进程启动以及ActivityThread与AMS的通信机制。接着介绍了如何创建Application及Activity的具体步骤。整体流程清晰明了,帮助你更深入理解Activity的工作原理。
56 0
|
4月前
|
开发工具 Android开发
解决Manifest merger failed : android:exported needs to be explicitly specified for <activity>
解决Manifest merger failed : android:exported needs to be explicitly specified for <activity>
95 1