Jetpack Compose的1.1版本发布了。新版本中包含了很多新的功能:经过优化的焦点处理、触摸目标值、ImageVector 缓存,支持 Android 12 拉伸滚动等等。
与之前版本相比,Compose 1.1将之前的部分实验性API升级到了稳定版本,并支持较新的Kotlin版本,同时更新了样本、代码实验室和Accompanist 库,以便与 Compose 1.1 一起使用
新的稳定功能和API
图像矢量缓存
Compose 1.1 引入了图像矢量缓存,带来了巨大的性能提升。painterResource
API中添加了一个缓存机制,以缓存所有以给定资源ID和主题解析的ImageVector
s的实例。缓存将在配置改变时失效。
触摸目标值
相比于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:
- 与动画相关的 API: EnterTransition, ExitTransition, AnimatedVisibility。
- 矢量相关的API: rememberVectorPainter, VectorProperty, VectorConfig, RenderVectorGroup。
新的实验性 APIs
Compose 添加的新功能:
- 使用 rememberSaveable 的同时,可以保存和恢复 AnimatedContent。
- 支持使用 Modifier.animateItemPlacement() 为 LazyColumn/LazyRow 项目位置进行动画处理。
- 支持使用全新 BringIntoView API 向父级发送请求,以便父级滚动,将项目引入视图。
未来版本中,Compose 重点关注的主题包括:性能、Material You 组件、大屏幕改进、主屏幕微件以及WearOS 支持。如果想要了解更多更新,请查看路线图。
相关链接:
- Jetpack Compose developer.android.google.cn/compose
- Accompanist 开发库 github.com/google/acco…