Jetpack Compose 是用于构建原生 Android 界面的新工具包。它使用更少的代码、强大的工具和直观的 Kotlin API,可以简化并加快 Android 界面开发。
Jetpack Compose 是围绕可组合函数构建的。这些函数以程序化方式定义应用的界面,只需描述应用界面的外观并提供数据依赖项,而不必关注界面的构建过程。Compose 使用 Kotlin 编译器插件将这些可组合函数转换为应用的界面元素。界面元素采用多层次结构,元素中又包含其他元素。在 Compose 中,通过从可组合函数中调用其他可组合函数来构建界面层次结构。为了装饰或配置可组合项,Compose 使用了修饰符。通过修饰符来更改可组合项的大小、布局、外观,还可以添加高级互动,例如使元素可点击。
优点:
精简代码:编写更少的代码会影响到所有开发阶段, 与使用 Android View 系统(按钮、列表或动画)相比,Compose 可以使用更少的代码实现更多的功能。
使用声明式API,只需描述界面,Compose 会负责完成其余工作。编写代码只需要采用 Kotlin,而不必拆分成 Kotlin 和 XML 部分。
利用 Compose,可以构建不与特定 activity 或 fragment 相关联的小型无状态组件。可以轻松重用和测试这些组件。
在 Compose 中,状态是显式的,并且会传递给相应的可组合项。这样一来,状态便具有单一可信来源,因为是封装和分离的。然后,应用状态变化时,界面会自动更新。
Compose 与所有的现有代码兼容:可以从 View 调用 Compose 代码,也可以从 Compose 调用 View。大多数常用库都适用于 Compose。
凭借对 Android 平台 API 的直接访问和对于 Material Design、深色主题、动画等的内置支持,可以轻松实现设计效果。
主题:
Jetpack Compose 原生提供 Material Design 3 及其界面元素的实现。在每个setContent{}方法中应用定义的主题,可组合项即可沿用应用主题中定义的样式,从而在整个应用中确保一致性。Material Design 是围绕 Color、Typography、Shape 这三大要素构建的。
Color: 通过MaterialTheme.colorScheme使用已封装主题中的颜色来设置样式。可以在需要颜色的任何位置使用主题中的这些值。
Typography:通过 MaterialTheme.typography 使用已配置好的字体样式。
Shape:通过 shapes 使用定义好的shape样式。