Fragment 是 Android 中历史十分悠久的一个组件,在 Android 3.0 (API 级别 11)的时候推出,时至今日已成为 Android 开发中最常用的组件之一 在一开始的时候,引入 Fragment 的目的是为了在大屏幕(如平板电脑)上能够更加动态和灵活地设计界面,被定义为一个 **轻量级 Activity** 而进行设计。通过 Fragment 可以将整个界面划分为多个分散的区域块,且同个 Fragment 可以被应用于多个 Activity 中,从而实现界面的**模块化**并提高**可重用性**。随着 Android 系统的逐渐升级,系统功能越来越丰富,Fragment 因此也自然而然的就被添加了很多和 Activity 完全一样的 API。例如,想要跳转到某个 Activity 并获取返回值,Activity 和 Fragment 就都加上了`startActivityForResult`方法;在 6.0 的时候有了运行时权限,就都加上了`requestPermissions`方法;在 8.0 的时候有了画中画模式,就又都加上了`onPictureInPictureModeChanged`方法 随着系统更迭,Fragment 逐渐变得不再**轻量**,繁杂的功能让其越来越复杂,也导致以前的版本中暗坑无数,framework 层中的`android.app.Fragment`和 support 包中的 `android.support.v4.app.Fragment` 如今都被废弃不再维护了,也遗留了很多个没有解决的 bug,因此 Fragment 在长久以来并不能说是一个多么让开发者喜欢的组件 而到了如今 AndroidX & Jetpack 的年代,Google 官方也终于开始重新构思 Fragment 的定位,并对 Fragment 进行了大量重构。引用官方的说法:**我们希望 Fragment 成为一个真正的核心组件,它应该拥有可预测的、合理的行为,不应该出现随机错误,也不应该破坏现有的功能。我们希望挑个时间发布 Fragment 的 2.0 版,它将只包含那些新的、好用的 API。但在时机成熟之前,我们会在现有的 Fragment 中逐步加入新的并弃用旧的 API,并为旧功能提供更好的替代方案。当没人再使用已弃用的 API 时,迁移到 Fragment 2.0 就会变得很容易** 本篇文章就来介绍新时代 AndroidX Fragment 的方方方面,陆陆续续写了一万多字,有基础知识也有新知识,也许就包含了一些你还没了解过的知识点,看完之后你会发现 Fragment 如今好像真的在变得越来越好用了,希望对你有所帮助 标签:生命周期,val,fragment,方法,Fragment,Activity,交互 From: https://www.cnblogs.com/aibot/p/18254111