Jetpack Compose 1.1 发布,基于 Kotlin 的 Android UI 工具包
Jetpack Compose 是 Android 基于 Kotlin 的现代原生 UI 工具包,可以帮助开发者更快地构建应用程序,由谷歌开源。Jetpack Compose 1.1 版本包含了一些新功能,如改进的焦点处理、强制扩展触摸目标大小、ImageVector 缓存,以及支持Android 12的拉伸滚动效果,此外一些实验性 api 变得稳定,并支持 Kotlin 的新版本。
注意:使用 Compose 1.1 需要使用 Kotlin 1.6.10。
图像矢量缓存
Compose 1.1引入了图像矢量缓存,为 painterResource API 添加了一个缓存机制:缓存所有用给定资源 id 和主题解析的 ImageVectors 实例,带来了巨大的性能改进。
注意:更改配置时,该缓存将失效。
强制扩展的触摸目标大小
在 Jetpack Compose 1.1 版本,Material 组件将扩展布局空间,以满足 Material 的可访问性指南-触摸目标大小标准。
例如 RadioButton's,即使开发者将 RadioButton 的尺寸设置得更小,触摸目标的最小尺寸也会扩大到 48x48dp。图下图:
左图为 Jetpack Compose 1.0 可用的触摸设置,右图为 Jetpack Compose 1.1 强制扩充触摸目标尺寸后的效果。
可以通过设置 LocalMinimumTouchTargetEnforcement 为 false 来禁用此功能。
从实验转为稳定的 API
- 动画相关的API,如:
EnterTransition、ExitTransition、部分AnimatedVisibilityAPI、 - 矢量相关 API:
rememberVectorPainter、VectorProperty、VectorConfig和RenderVectorGroup
新的实验性 API
- 使用
rememberSaveable.时,亦可保存和恢复AnimatedContent - 可以使用
Modifier.animateItemPlacement().对 LazyColumn/LazyRow 进行动画定位 - 可以使用新的
BringIntoView API向父级发送请求,滚动地将元素带入视图。
更新公告:https://android-developers.googleblog.com/2022/02/jetpack-compose-11-now-stable.html
