写点什么

JETPACK-COMPOSE-ALPHA- 版现已发布!(1)

发布于: 2021 年 11 月 07 日

Alpha 版本发布内容如下:


  • Animations

  • Constraint Layout

  • 无障碍初步支持

  • 输入和手势

  • 与视图的互操作性 (可以在您现有的 app 中混合可以组合的功能)

  • 懒加载列表

  • Material UI 组件

  • 性能优化

  • 测试

  • 文本和可编辑文本

  • 主题和图形

  • Window 管理


在与?JetBrains Kotlin 团队?的紧密合作下,我们也为 Android Studio 4.2 canary 添加了一系列新功能来帮助您使用 Compose 构建应用:


  • Compose 代码自动补全

  • Compose 预览注解

  • 部署单个可组合的组件到任何设备上

  • 交互式 Compose 预览

  • 可以生成代码的 Kotlin 编译器插件

  • 适用于 Compose 的示例数据 API

Compose 的编程思想

Compose 使用的编程模型与 Android 上现有的构建 UI 的模型完全不同。从历史上看,Android 的视图层次结构一直被描述为 UI 组件树。随着 app 状态的变化,需要更新 UI 层次结构来显示当前的数据。更新 UI 最常见的方法是使用像?findViewById()?这样的方法去遍历 UI 组件树,并通过调用类似下面的这些方法来改变节点:


button.setText(String)


container.addView(View)


img.setImageBitmap(Bitmap)


这些方法会改变组件的内部状态。这不仅乏味繁琐,而且手动更新视图也会增加出错的可能性 (例如忘记更新视图)。Jetpack Compose 是一种完全基于声明式组件的方法,这意味着您需要将 UI 描述为将数据转换为 UI 层级结构的函数。当基础数据发生变化时,Compose 框架会自动为您更新 UI 层次结构,从而使您可以轻松快速的构建 UI。


与现有 Android 视图完全互操作

对于现有


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


的项目和代码库来说,采用任何新的框架都是一个很大的改变,这就是为什么我们把 Compose 设计得和 Kotlin 一样容易采用——它从一开始就可以与现有的 Android 代码完全互操作。


是否迁移到 Compose 取决于您和您的团队。如果您正在构建一个新的 app,最好的选择可能是使用 Compose 来实现 app 的整个 UI 界面。我们知道大多数人都有大量的现有代码库,可以将 Compose 与现有的 UI 设计结合起来,而无需重写应用。


可以通过以下两种主要的方式将 Compose 与基于视图的 UI 结合起来:


  • 您可以添加 Compose 元素到现有的 UI,或者创建一个全新的基于 Compose 的屏幕,或者是向现有的 fragment 或视图布局中添加 Compose 元素。

  • 您可以将基于视图的 UI 元素添加到可组合的函数中。这样做可以将不基于 Compose 的组件添加到基于 Compose 的组件中,例如: MapView 或 WebView。


我们也发布了一个新库?MDC Compose 主题适配器,它可以让您在 Compose UI 中复用现有的?Material Components?主题。


要了解更多相关信息,请参阅?Compose for existing apps codelab?或查看以下两个示例:


强大的工具

Android Studio 中包含了辅助您使用 Jetpack Compose 的强大工具,可以帮助您快递迭代 UI 元素。


借助 Compose 布局预览,您可以预览 Compose 组件,而无需将应用部署到设备或模拟器。在开发应用时,您的预览会更新,以帮助您更快地检查变更。要创建布局预览,请编写一个不使用任何参数的 Composable 函数,并添加:


@Preview annotation


完成应用构建后,预览功能的 UI 会出现在 Android Studio 的??Preview??窗格中。



Android Studio 提供了?交互式预览模式?。在交互式预览模式下,您可以在 UI 元素中点击或输入,UI 将会响应,就像是在已安装的应用中一样。



交互式预览工具


您也可以将单个可组合功能部署到物理设备或 Android Emulator。Android Studio 会创建一个新的 Activity,其中包含由将该功能所生成的 UI,并将其部署到您在设备上的应用。这样您就可以实际体验测试 UI,而无需重新安装整个应用或导航到当前页面。



可组合元素预览

评论

发布
暂无评论
JETPACK-COMPOSE-ALPHA-版现已发布!(1)