详解Jetpack Compose 1.1版本的新功能

描述

我们一如既往地搭建产品路线图,现在已经发布了 Jetpack Compose 的 1.1 版本,这是 Android 的现代原生界面工具包。此版本新增了一些功能,比如经过优化的焦点处理、触摸目标值、ImageVector 缓存,和对 Android 12 拉伸滚动的支持。Compose 1.1 还让许多之前的实验性 API 过渡到了稳定阶段,并支持新版 Kotlin。我们已经更新了示例、Codelab 和 Accompanist 开发库,以便您与 Compose 1.1 搭配使用。

全新稳定功能和 API

图像矢量 (Image vector) 缓存Compose 1.1 引入了图像矢量 (Image vector) 缓存,带来了巨大的性能改进。我们为 painterResource API 添加了缓存机制,以缓存所有使用给定资源 ID 和主题解析的 ImageVectors 实例。缓存将在配置更改时失效。

触摸目标值相对于 Compose 1.0,Material 组件将扩展其布局空间来满足 Material 无障碍指南的触摸目标值要求。例如,即使您调低 RadioButton 的大小,RadioButton's 触摸目标的尺寸仍将扩展为至少 48x48dp。这将使得 Compose Material 与 Material Design 组件的行为保持一致,以便在混合使用 View 和 Compose 时提供一致的行为。此更改还可确保当您使用 Compose Material 组件创建界面时,能够满足触摸目标无障碍功能的最低要求。

如果您发现此更改破坏了现有的布局逻辑,请将 LocalMinimumTouchTargetEnforcement 设置为 false 来禁用此行为,但此操作可能会降低应用的可用性,因此需要您格外注意,并谨慎使用。

从实验版到稳定版的 API

一些 API 从实验版过渡到了稳定版。主要包括:

动画相关 API,例如: EnterTransition、ExitTransition、一些 AnimatedVisibility API

矢量相关 API: rememberVectorPainter、VectorProperty、VectorConfig 和 RenderVectorGroup

全新实验版 API

我们一直在为 Compose 添加新功能,包括以下亮点:

您使用 rememberSaveable 的同时,可以保存和恢复 AnimatedContent。

您可以使用 Modifier.animateItemPlacement() 为 LazyColumn/LazyRow 项目位置进行动画处理。

您可以使用全新 BringIntoView API 向父级发送请求,以便父级滚动,将项目引入视图。

您可以使用 @OptIn 以试用这些全新的 API,并向我们提供反馈!

注意: 使用 Compose 1.1 需要使用 Kotlin 1.6.10。如需了解更多信息,您可以查看 Compose 与 Kotlin 的兼容性对应关系:

想知道未来计划?您可以查看最新路线图,了解我们目前正在评估和开发的功能,比如延迟加载项目动画、可下载的字体、可移动的内容等等!

Jetpack Compose 现已推出稳定版本,供大家在生产环境中使用,并且会继续添加您想要的功能。我们很高兴看到成千上万的应用已经开始在生产环境中使用 Jetpack Compose,我们迫不及待想看到您将构建的应用!

我们很感激开发者们在 Alpha 版和 Beta 版期间,通过问题跟踪页提交的错误报告和功能请求,帮助我们改进了 Compose 并构建您需要的 API。欢迎您继续与我们分享您的反馈,帮助我们让 Compose 变得更好!也欢迎您持续关注我们了解更多最新内容。

除了通过触摸进行交互外,大屏幕设备还支持其他交互形式。设备的屏幕尺寸越大,用户就越有可能使用键盘、手写笔、鼠标、游戏手柄或其他外接设备。如果您想提高应用在这些情况下的易用性,可以计划支持其中一些输入方式。

原文标题:Jetpack Compose 1.1 现已进入稳定版!

文章出处:【微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分