Jetpack Compose 1.1 现已进入稳定版

2532

Jetpack Compose的1.1版本发布了。新版本中包含了很多新的功能:经过优化的焦点处理、触摸目标值、ImageVector 缓存,支持 Android 12 拉伸滚动等等。

与之前版本相比,Compose 1.1将之前的部分实验性API升级到了稳定版本,并支持较新的Kotlin版本,同时更新了样本代码实验室Accompanist 库,以便与 Compose 1.1 一起使用

新的稳定功能和API

图像矢量缓存

Compose 1.1 引入了图像矢量缓存,带来了巨大的性能提升。painterResource API中添加了一个缓存机制,以缓存所有以给定资源ID和主题解析的ImageVectors的实例。缓存将在配置改变时失效。

触摸目标值

相比于Compose 1.0,Material 组件将扩展其布局空间,以满足 Material无障碍指南触摸目标值的要求。例如,即使用户将RadioButton 的尺寸设置得更小,RadioButton's 触摸目标值仍旧会调整到最小尺寸 48x48dp。这一功能使得Compose Material与Material Design Components的行为一致,如果混合使用Views和Compose,可以提供一致的行为。

同时,这一变化也确保了当用户使用Compose Material组件创建UI时,触摸目标无障碍功能的最低要求将得到满足。

如果用户发现这个变化破坏了现有的布局逻辑,可以将 LocalMinimumTouchTargetEnforcement设置为false,禁用该功能,但要注意这可能会降低应用程序的可用性。

实验性API到稳定API

Compose 从实验性过渡到稳定的API:

新的实验性 APIs

Compose 添加的新功能:

  • 使用 rememberSaveable 的同时,可以保存和恢复 AnimatedContent。
  • 支持使用 Modifier.animateItemPlacement() 为 LazyColumn/LazyRow 项目位置进行动画处理。
  • 支持使用全新 BringIntoView API 向父级发送请求,以便父级滚动,将项目引入视图。

未来版本中,Compose 重点关注的主题包括:性能、Material You 组件、大屏幕改进、主屏幕微件以及WearOS 支持。如果想要了解更多更新,请查看路线图

相关链接: