
Jetpack Compose的最新版本,像往常一样以发布月份命名,新增了渲染阴影、2D 滚动、改进列表性能等 API。
两个新的修饰符, Modifier.dropShadow()
和 Modifier.innerShadow()
,允许在可组合对象(如图片或矩形)的下方或上方渲染盒影效果。它们扩展了 Jetpack Compose 的阴影功能,超越了现有的 Modifier.shadow()
,后者用于根据光照模型渲染基于仰角的阴影。
为了改善元素在屏幕上位置的跟踪,Jetpack Compose 引入了两个新的可见性修饰符, onVisibilityChanged
和 onFirstVisible
。第一个修饰符在元素变得可见或不可见时触发,如自动播放和暂停视频,而第二个修饰符在元素首次变得可见时触发。
最新的 Jetpack Compose 版本还改进了懒加载组件,即只在必要时才布局和渲染的组件,而不是一次全部呈现。由于新的 LazyLayoutCacheWindow
,现在懒加载列表和网格都提供了更好的预取性能,它允许开发人员指定要预取多少项。默认行为是一次预取一个项目。
对于实现更复杂可滚动体验(如电子表格或图像查看器)的应用程序来说,一个重要的新功能是新的 Scrollable2D 修饰符,它支持在两个维度上滚动和滑动,并扩展了仅在一个方向上工作的现有 Scrollable
修饰符。此外,几个缺陷修复和新特性改善了滚动和嵌套滚动与视图的互操作性。
在工具方面,新的 Jetpack Compose 版本引入了一个可选 API,用于提供更丰富的崩溃报告,其中包括可组合的名称和崩溃位置。这是对以前的报告的一个重大改进,之前的报告只显示内部堆栈帧,几乎没有有用的信息。谷歌表示,新的 API 可以帮助开发人员更有效地识别和修复崩溃,使其更容易隔离和重现。值得注意的是,新的 API 对性能有影响,不推荐在发布版本中使用。
最后需要说明的是,谷歌引入了一个新的运行时注解库,以暴露编译器和静态检查注解,允许非 Compose 类和函数使用它们,而无需依赖 Compose 运行时。该版本还添加了两个新的 lint 注解: @RememberInComposition
,用于标记在组合中不得直接调用的函数、构造函数和 getter;以及 @FrequentlyChangingValue
,它警告在组合中直接调用可能触发频繁重组的操作。
原文链接:
https://www.infoq.com/news/2025/08/jetpack-compose-august-2025/
评论