Jetpack Compose 1.2 包含懒加载网格、Google 字体支持等

Jetpack Compose 1.2 稳定版发布

Jetpack Compose 1.2 稳定版正式发布,带来了多项功能的稳定化,包括懒加载网格、嵌套滚动、动画的缓动曲线等。此外,该版本还引入了一些新的实验性功能,如自定义布局和可下载字体,并修复了许多问题。

主要稳定功能

  1. 懒加载网格
    通过 LazyHorizontalGridLazyVerticalGrid API,开发者可以构建懒加载网格。这些网格的行为经过优化,只有可见的项才会被渲染到内存中,从而提升性能。以下代码片段展示了如何定义一个包含多个项的垂直网格:

    LazyVerticalGrid(
        columns = GridCells.Fixed(3)
    ) {
        items(itemsList) {
            Text("Item is $it", itemModifier)
        }
        item {
            Text("Single item", itemModifier)
        }
    }
  2. 缓动曲线
    缓动曲线扩展了动画速度控制,允许在动画的开始或结束时加速或减速。除了常见的缓入缓出曲线外,还提供了其他多种曲线,例如在结束时强调动画、加速或减速等。开发者还可以自定义缓动曲线,如下例所示:

    val CustomEasing = Easing { fraction -> fraction * fraction }
    
    @Composable
    fun EasingUsage() {
        val value by animateFloatAsState(
            targetValue = 1f,
            animationSpec = tween(
                durationMillis = 300,
                easing = CustomEasing
            )
        )
        // ...
    }
  3. 嵌套滚动
    嵌套滚动功能允许在一个可滚动视图中嵌入另一个可滚动视图。通过 nestedScroll 修饰符,开发者可以定义滚动层次结构,使滚动增量在达到滚动边界时从内部视图传播到外部视图。

新的实验性功能

  1. 懒加载布局
    懒加载布局可以看作是懒加载网格的泛化,它只渲染实际可见的项,从而提升性能和效率。
  2. 可下载字体
    开发者现在可以在 Android 应用中使用 Google Fonts。通过 GoogleFont 类,开发者可以实例化字体并提供字体名称,然后用于创建 FontRequest

问题修复与改进

  • 禁用懒加载布局的滚动:现在可以在特定情况下禁用懒加载布局的滚动。
  • 统一 TextFieldEditText 的返回键行为:修复了这两个组件在返回键行为上的不一致问题。
  • 动画设置遵循开发者选项:确保 Compose 动画尊重开发者选项中的动画设置。

更新要求

更新到 Jetpack Compose 1.2 需要 Kotlin 1.7.0 版本。

总结

Jetpack Compose 1.2 通过稳定化多项功能和引入新的实验性功能,进一步提升了开发者的体验。同时,修复了大量问题并采纳了社区反馈,使得该版本在性能和功能上都有显著提升。

阅读 25
0 条评论