Compose 动画

在 Jetpack Compose 应用中构建动画以丰富用户体验。
最新更新 稳定版 候选版本 (RC) Beta 版 Alpha 版
2025 年 6 月 4 日 1.8.2 - - 1.9.0-alpha04

结构

Compose 是 androidx 下的 7 个 Maven 组 ID 的组合。每个组都包含一组特定的功能,并且都有一套自己的版本说明。

此表解释了这些组,并提供了指向各组版本说明的链接。

说明
compose.animation在 Jetpack Compose 应用中构建动画以丰富用户体验。
compose.compiler使用 Kotlin 编译器插件转换 @Composable 函数并启用优化。
compose.foundation使用现成的构建块编写 Jetpack Compose 应用,并扩展基础以构建您自己的设计系统组件。
compose.material使用现成的 Material Design 组件构建 Jetpack Compose 界面。这是 Compose 的更高层级入口点,旨在提供与 www.material.io 中描述的组件相匹配的组件。
compose.material3使用 Material Design 3 组件(Material Design 的下一代演进)构建 Jetpack Compose 界面。Material Design 3 包含更新的主题和组件,以及 Material You 个性化功能(如动态颜色),旨在与新的 Android 12 视觉样式和系统界面保持一致。
compose.runtimeCompose 编程模型和状态管理的基本构建块,以及 Compose 编译器插件的核心运行时。
compose.uiCompose 界面与设备交互所需的基本组件,包括布局、绘制和输入。

声明依赖项

要添加对 Compose 的依赖项,您必须将 Google Maven 代码库添加到您的项目中。如需了解详情,请阅读Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项

Groovy

dependencies {
    implementation "androidx.compose.animation:animation:1.8.2"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.animation:animation:1.8.2")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

如需了解有关依赖项的更多信息,请参阅添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新问题或对改进此库有任何想法,请告知我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星标按钮,为您现有的问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

版本 1.9

版本 1.9.0-alpha04

2025 年 6 月 4 日

androidx.compose.animation:animation-*:1.9.0-alpha04 已发布。版本 1.9.0-alpha04 包含这些提交

版本 1.9.0-alpha03

2025 年 5 月 20 日

androidx.compose.animation:animation-*:1.9.0-alpha03 已发布。版本 1.9.0-alpha03 包含这些提交

版本 1.9.0-alpha02

2025 年 5 月 7 日

androidx.compose.animation:animation-*:1.9.0-alpha02 已发布。版本 1.9.0-alpha02 包含这些提交

新功能

  • 大幅改进了对共享元素滚动或拖动的支持。更具体地说,当正在过渡的共享元素被滚动时,滚动增量将直接应用于共享元素,而不是导致共享元素追逐新目标。(cacf7b

版本 1.9.0-alpha01

2025 年 4 月 23 日

androidx.compose.animation:animation-*:1.9.0-alpha01 已发布。版本 1.9.0-alpha01 包含这些提交

行为变更

  • Compose 随附的 Lint 检查现在需要最低 AGP 版本 8.8.2。如果您无法升级 AGP,则可以在 gradle.properties 中使用 android.experimental.lint.version=8.8.2(或更新版本)来单独升级 Lint。要在 IDE 中运行 Compose Lint 检查,需要 Android Studio Ladybug 或更高版本。

新功能

  • 提高了共享元素的滚动性能(ea4f1f

API 变更

  • 使用 Kotlin 2.0 发布的项目需要使用 KGP 2.0.0 或更高版本。(Idb6b5
  • TabRowScrollableTabRow 已被弃用,取而代之的是它们的 Primary 和 Secondary 变体。Primary 和 Secondary 标签页行性能更高,且与规范更一致。(I918e2
  • 添加了 LocalResources 组合本地以查询资源。调用 LocalResources.current 将在配置更改时重新组合,因此对 stringResource() 等 API 的调用将返回更新的值(I50c13b/274786917

bug 修复

  • 确保过渡完成后,共享元素会从叠加层中移除(35f359
  • 消除 Transition 中的额外重组(988923
  • 修复了子过渡中断处理(8aed52
  • 确保在提供新的 TransitionState 时重置过渡(57820a

外部贡献

  • 源自Compose 1.8.1:如果 Steven Schoen 的 SeekableTransitionState 中的动画已超出新持续时间,则结束动画。(0c832c

版本 1.8

版本 1.8.2

2025 年 5 月 20 日

androidx.compose.animation:animation-*:1.8.2 已发布。版本 1.8.2 包含这些提交

版本 1.8.1

2025 年 5 月 7 日

androidx.compose.animation:animation-*:1.8.1 已发布。版本 1.8.1 包含这些提交

外部贡献

  • 如果 SeekableTransitionState 中的动画已超出新持续时间,则结束动画。感谢 Steven Schoen!(fbcdf7

版本 1.8.0

2025 年 4 月 23 日

androidx.compose.animation:animation-*:1.8.0 已发布。版本 1.8.0 包含这些提交

自 1.7.0 以来的重要变更

  • 版本 1.8.0 中的重要变更请参阅这篇博文
  • 新的 Modifier.animateBounds API,用于在预显示范围内对尺寸和位置变化进行动画处理。(94b939
  • 带弧线和样条线的 Keyframes 的 API 已最终确定。(89e119
  • 支持 LazyGrid 和 Pager 中的 Lookahead。这包括在滚动、项目组合/处置和项目动画中区分 lookahead 遍数与 approach 遍数,并使用 lookahead 遍数作为滚动和项目动画目标的真实来源。
  • 已将 sharedElement 参数命名从 state 更新为 sharedContentState,以实现共享元素 API 的一致性。(9e7df5
  • AnimatedImageVector API 套件现在已稳定。(69d7e0

版本 1.8.0-rc03

2025 年 4 月 9 日

androidx.compose.animation:animation-*:1.8.0-rc03 已发布。版本 1.8.0-rc03 包含这些提交

版本 1.8.0-rc02

2025 年 3 月 26 日

androidx.compose.animation:animation-*:1.8.0-rc02 已发布。版本 1.8.0-rc02 包含这些提交

版本 1.8.0-rc01

2025 年 3 月 12 日

androidx.compose.animation:animation-*:1.8.0-rc01 已发布。版本 1.8.0-rc01 包含这些提交

bug 修复

  • 修复了子过渡被错误标记为已中断的问题。(3fa2ce

版本 1.8.0-beta03

2025 年 2 月 26 日

androidx.compose.animation:animation-*:1.8.0-beta03 已发布。版本 1.8.0-beta03 包含这些提交

版本 1.8.0-beta02

2025 年 2 月 12 日

androidx.compose.animation:animation-*:1.8.0-beta02 已发布。版本 1.8.0-beta02 包含这些提交

版本 1.8.0-beta01

2025 年 1 月 29 日

androidx.compose.animation:animation-*:1.8.0-beta01 已发布。版本 1.8.0-beta01 包含这些提交

版本 1.8.0-alpha08

2025 年 1 月 15 日

androidx.compose.animation:animation-*:1.8.0-alpha08 已发布。版本 1.8.0-alpha08 包含这些提交

bug 修复

  • 修复了由于 MotionFrameOfReferencePlacement 被重置而导致 LazyGridanimateBounds 的位置动画不正确的问题。(16193b
  • 通过将固有查询从顶级 lookahead 根重定向到 lookahead pass,修复了 SharedTransitionLayout 中的固有查询。(a07d12
  • 在文档中添加了缺失的 @param 标记。(e5cf67

版本 1.8.0-alpha07

2024 年 12 月 11 日

androidx.compose.animation:animation-*:1.8.0-alpha07 已发布。版本 1.8.0-alpha07 包含这些提交

新功能

  • Pager 支持 lookahead,通过区分 lookahead 遍数和 approach 遍数来保留项目和消耗滚动。(b/371802474

bug 修复

  • 修复了共享元素已组合但从未测量/放置的罕见崩溃,方法是要求共享元素在渲染到叠加层之前至少渲染一次。(b/371802474

版本 1.8.0-alpha06

2024 年 11 月 13 日

androidx.compose.animation:animation-*:1.8.0-alpha06 已发布。版本 1.8.0-alpha06 包含这些提交

API 变更

  • 已将 sharedElement 参数命名从 state 更新为 sharedContentState,以实现共享元素 API 的一致性。(I5694cb/375351468
  • AnimatedImageVector API 套件现在已稳定。(I7174bb/261436267

版本 1.8.0-alpha05

2024 年 10 月 30 日

androidx.compose.animation:animation-*:1.8.0-alpha05 已发布。版本 1.8.0-alpha05 包含这些提交

新功能

  • LazyGrid 现在支持 Lookahead。这包括在滚动、项目组合/处置和项目动画中区分 lookahead 遍数与 approach 遍数,并使用 lookahead 遍数作为滚动和项目动画目标的真实来源。

bug 修复

  • 当过渡重新创建时,更新 AnimatedContent 尺寸转换的内部状态。这可确保目标尺寸信息始终保持最新。(b/372512085

版本 1.8.0-alpha04

2024 年 10 月 16 日

androidx.compose.animation:animation-*:1.8.0-alpha04 已发布。版本 1.8.0-alpha04 包含这些提交

bug 修复

  • 修复了导致某些缓动曲线在特定时间分段崩溃的 bug。
  • 修复了在 RTL 下 Modifier.animateContentSize 对齐不当的 bug。(Idae6bb/372055503

版本 1.8.0-alpha03

2024 年 10 月 2 日

androidx.compose.animation:animation-*:1.8.0-alpha03 已发布。版本 1.8.0-alpha03 包含这些提交

API 变更

  • Kotlin 版本更新至 1.9(I1a14c

bug 修复

  • 修复了 AnimatedContent 尺寸动画中的一个问题,通过始终从当前尺寸跟踪和启动动画来确保连续性。

版本 1.8.0-alpha02

2024 年 9 月 18 日

androidx.compose.animation:animation-*:1.8.0-alpha02 已发布。版本 1.8.0-alpha02 包含这些提交

版本 1.8.0-alpha01

2024 年 9 月 4 日

androidx.compose.animation:animation-*:1.8.0-alpha01 已发布。版本 1.8.0-alpha01 包含这些提交

新功能

  • 新的 Modifier.animateBounds API,用于在预显示范围内对尺寸和位置变化进行动画处理。94b9394

API 变更

  • 移除带弧线和样条线的 Keyframes 上的实验性标志(89e1199

bug 修复

  • 未找到匹配项时跳过 placeHolderSize 逻辑(77c0160
  • 限制 AndroidFlingSpline 中的播放时间,以防止由于播放时间非单调递增而导致崩溃(9d47587
  • 修复了 SharedTransitionScope 在某些条件下不绘制项目的问题(b41077b6

外部贡献

  • 阻止在没有过渡运行时设置可查找过渡的 playTime,由 Steven Schoen 提供。(c2e6e7e6

版本 1.7

版本 1.7.8

2025 年 2 月 12 日

androidx.compose.animation:animation-*:1.7.8 已发布。版本 1.7.8 包含这些提交

版本 1.7.7

2025 年 1 月 29 日

androidx.compose.animation:animation-*:1.7.7 已发布。自 1.7.6 版以来无变化。2024 年 12 月 11 日

androidx.compose.animation:animation-*:1.7.6 已发布。版本 1.7.6 包含这些提交

版本 1.7.5

2024 年 10 月 30 日

androidx.compose.animation:animation-*:1.7.5 已发布。版本 1.7.5 包含这些提交

bug 修复

  • 修复了在 RTL 下 Modifier.animateContentSize 对齐不当的 bug。(Idae6bb/372055503

版本 1.7.4

2024 年 10 月 16 日

androidx.compose.animation:animation-*:1.7.4 已发布。版本 1.7.4 包含这些提交

版本 1.7.3

2024 年 10 月 2 日

androidx.compose.animation:animation-*:1.7.3 已发布。版本 1.7.3 包含这些提交

版本 1.7.2

2024 年 9 月 18 日

androidx.compose.animation:animation-*:1.7.2 已发布。版本 1.7.2 包含这些提交

外部贡献

  • 阻止在没有过渡运行时设置可查找过渡的 playTime。感谢 Steven Schoen!(c2e6e7e6

版本 1.7.1

2024 年 9 月 10 日

  • Android 工件无变化。-desktop 工件已移除,并添加了 -jvmStubs-linuxx64Stubs 工件。这些目标均不打算使用,它们是帮助 Jetbrains Compose 工作的占位符。

版本 1.7.0

2024 年 9 月 4 日

androidx.compose.animation:animation-*:1.7.0 已发布。

自 1.6.0 以来的重要变更

版本 1.7.0 中的重要变更请参阅这篇博文

新的共享元素过渡 API

  • 新的共享元素过渡 API 等待您的使用和反馈。这些新的实验性 API 允许使用提供的修饰符将布局标记为在布局树中共享,当一组共享内容退出而另一组内容进入时,可以平滑地更改边界。(Icb0b9
  • 新的 scaleInSharedContentToBoundsscaleOutSharedContentToBounds,用于在 sharedBounds 中缩放内容(I731c1
  • 实验性 SharedTransitionScope 现在是接口而不是类。(Iaf856
  • sharedBounds 新增 resizeModesScaleToBoundsRemeasureToBounds),用于在缩放和重新测量之间进行选择。之前的 scaleIn/OutSharedContentToBounds API 现已弃用。(I0d41a

对现有 API 的改进

  • 新的 Modifier.animateContentSize,它接受一个额外的参数用于自定义内容对齐。(I5623ab/269803907
  • 新的实验性 DeferredTargetAnimation,用于对大小、位置或实例化期间未知的任何其他目标进行动画处理。(I60745
  • SeekableTransitionStatesnapTo() 替换为 seekTo(),并添加了一个 snapTo(),它可以立即将状态更改为目标状态,而无需任何动画。
  • 现在可以将 periodicBias 值(浮点型)传递给 keyframesWithSpline,这将使样条的初始速度和最终速度相等。适用于使用样条的可重复动画。偏差表示每个速度(初始速度和最终速度)为了实现周期性而进行修改的程度。(Ic1e6cb/292114811

以下 API 已稳定或已移除

  • AnimatedVisibilityScope.transition 现在是稳定版 API。Modifier.animateEnterExit(..) 也已稳定。(I6c1d1
  • ApproachLayoutModifierNodeModifier.approachLayout 现在已稳定,新增了 isMeasurementApproachInProgress()isPlacementApproachInProgress(),分别取代了旧的 isMeasurementApproachComplete()isPlacementApproachComplete()
  • 移除了已弃用的 intermediateLayout 修饰符。(I3e91c
  • LookaheadScope API 已稳定。(I21507

版本 1.7.0-rc01

2024 年 8 月 21 日

androidx.compose.animation:animation-*:1.7.0-rc01 已发布。版本 1.7.0-rc01 包含这些提交

版本 1.7.0-beta07

2024 年 8 月 7 日

androidx.compose.animation:animation-*:1.7.0-beta07 已发布。版本 1.7.0-beta07 包含这些提交

bug 修复

  • 修复了 SharedTransitionScope 在某些条件下(通常包括与导航一起使用时)在过渡期间不绘制叠加层项目的问题。(Id65abb/347520198

版本 1.7.0-beta06

2024 年 7 月 24 日

androidx.compose.animation:animation-*:1.7.0-beta06 已发布。版本 1.7.0-beta06 包含这些提交

bug 修复

  • 修复了 SeekableTransition 泄漏过渡状态的问题,方法是在过渡处理后正确清理 SnapshotStateObserver 中的观察。(b9c7182
  • 修复了当父过渡完成时,子过渡未正确标记为完成的边缘情况。(dc42216

版本 1.7.0-beta05

2024 年 7 月 10 日

androidx.compose.animation:animation-*:1.7.0-beta05 已发布。版本 1.7.0-beta05 包含这些提交

bug 修复

  • Transition 属性 totalDurationNanos 现在可以在 snapshotFlow 中正确读取。

版本 1.7.0-beta04

2024 年 6 月 26 日

androidx.compose.animation:animation-*:1.7.0-beta04 已发布。版本 1.7.0-beta04 包含这些提交

版本 1.7.0-beta03

2024 年 6 月 12 日

androidx.compose.animation:animation-*:1.7.0-beta03 已发布。版本 1.7.0-beta03 包含这些提交

版本 1.7.0-beta02

2024 年 5 月 29 日

androidx.compose.animation:animation-*:1.7.0-beta02 已发布。版本 1.7.0-beta02 包含这些提交

版本 1.7.0-beta01

2024 年 5 月 14 日

androidx.compose.animation:animation-*:1.7.0-beta01 已发布。版本 1.7.0-beta01 包含这些提交

API 变更

  • sharedBounds 新增 resizeModesScaleToBoundsRemeasureToBounds),用于在缩放和重新测量之间进行选择。之前的 scaleIn/OutSharedContentToBounds API 现已弃用。(I0d41a

外部贡献

版本 1.7.0-alpha08

2024 年 5 月 1 日

androidx.compose.animation:animation-*:1.7.0-alpha08 已发布。版本 1.7.0-alpha08 包含这些提交

API 变更

  • LookaheadScope API 已稳定。(I21507

外部贡献

  • 在 Steven Schoen 的 SeekableTransitionState 动画/吸附之后清除开始动画时间。(1ca89529

版本 1.7.0-alpha07

2024 年 4 月 17 日

androidx.compose.animation:animation-*:1.7.0-alpha07 已发布。版本 1.7.0-alpha07 包含这些提交

新功能

  • 新的共享元素过渡 API 等待您的使用和反馈。这些新的实验性 API 允许使用提供的修饰符将布局标记为在布局树中共享,当一组共享内容退出而另一组内容进入时,可以平滑地更改边界。(Icb0b9
  • 新的 scaleInSharedContentToBoundsscaleOutSharedContentToBounds,用于在 sharedBounds 中缩放内容(I731c1

API 变更

  • AnimatedVisibilityScope.transition 现在是稳定版 API。Modifier.animateEnterExit(..) 也已稳定。(I6c1d1
  • ApproachLayoutModifierNodeModifier.approachLayout 现在已稳定,新增了 isMeasurementApproachInProgress()isPlacementApproachInProgress(),分别取代了旧的 isMeasurementApproachComplete()isPlacementApproachComplete()
  • 移除了已弃用的 intermediateLayout 修饰符。(I3e91c
  • 现在可以将 periodicBias 值(浮点型)传递给 keyframesWithSpline,这将使样条的初始速度和最终速度相等。适用于使用样条的可重复动画。偏差表示每个速度(初始速度和最终速度)为了实现周期性而进行修改的程度。(Ic1e6cb/292114811

bug 修复

  • 修复了之前会限制在 0..1 的过冲和欠冲缓动曲线。(I38747

版本 1.7.0-alpha06

2024 年 4 月 3 日

androidx.compose.animation:animation-*:1.7.0-alpha06 已发布。版本 1.7.0-alpha06 包含这些提交

新功能

  • LazyColumnLazyRow 中添加了项目出现和消失动画支持。以前,可以通过添加 Modifier.animateItemPlacement() 修饰符来支持放置(重新排序)动画。我们已弃用此修饰符,并引入了一个新的非实验性修饰符 Modifier.animateItem(),它允许您支持所有三种动画类型:出现(淡入)、消失(淡出)和重新排序。(I2d7f7b/330152398b/150812265

bug 修复

  • 改进了 updateTransition API 的性能。

版本 1.7.0-alpha05

2024 年 3 月 20 日

androidx.compose.animation:animation-*:1.7.0-alpha05 已发布。版本 1.7.0-alpha05 包含这些提交

API 变更

  • SeekableTransitionStatesnapTo() 替换为 seekTo(),并添加了一个 snapTo(),它可以立即将状态更改为目标状态,而无需任何动画。

版本 1.7.0-alpha04

2024 年 3 月 6 日

androidx.compose.animation:animation-*:1.7.0-alpha04 已发布。版本 1.7.0-alpha04 包含这些提交

API 变更

  • 新的 API Path.reverse() 用于反转路径方向。(I36348

版本 1.7.0-alpha03

2024 年 2 月 21 日

androidx.compose.animation:animation-*:1.7.0-alpha03 已发布。版本 1.7.0-alpha03 包含这些提交。

新功能

  • 新的 Modifier.animateContentSize,它接受一个额外的参数用于自定义内容对齐。(I5623ab/269803907
  • 新的实验性 DeferredTargetAnimation,用于对大小、位置或实例化期间未知的任何其他目标进行动画处理。(I60745

版本 1.7.0-alpha02

2024 年 2 月 7 日

androidx.compose.animation:animation-*:1.7.0-alpha02 已发布。版本 1.7.0-alpha02 包含这些提交。

bug 修复

  • KeyframesSpec 的兼容性修复。( I2bdf3, b/322214617)
  • 修复了在 LazyList 中使用时 Modifier.animateContentSize 未正确重置的问题。( I070512, b/322525716)
  • 修复了在 KeyframesSpec 中使用超出范围的时间戳时出现的 IllegalStateException。( I341b8, b/322839811)

版本 1.7.0-alpha01

2024 年 1 月 24 日

androidx.compose.animation:animation-*:1.7.0-alpha01 已发布。版本 1.7.0-alpha01 包含这些提交。

版本 1.6

版本 1.6.8

2024 年 6 月 12 日

androidx.compose.animation:animation-*:1.6.8 已发布。版本 1.6.8 包含这些提交

版本 1.6.7

2024 年 5 月 1 日

androidx.compose.animation:animation-*:1.6.7 已发布。版本 1.6.7 包含这些提交

版本 1.6.6

2024 年 4 月 17 日

androidx.compose.animation:animation-*:1.6.6 已发布。自上次发布以来无更改

版本 1.6.5

2024 年 4 月 3 日

androidx.compose.animation:animation-*:1.6.5 已发布。版本 1.6.5 包含这些提交

版本 1.6.4

2024 年 3 月 20 日

androidx.compose.animation:animation-*:1.6.4 已发布。版本 1.6.4 包含这些提交

版本 1.6.3

2024 年 3 月 6 日

androidx.compose.animation:animation-*:1.6.3 已发布。版本 1.6.3 包含这些提交

版本 1.6.2

2024 年 2 月 21 日

androidx.compose.animation:animation-*:1.6.2 已发布。版本 1.6.2 包含这些提交。

版本 1.6.1

2024 年 2 月 7 日

androidx.compose.animation:animation-*:1.6.1 已发布。版本 1.6.1 包含这些提交。

bug 修复

版本 1.6.0

2024 年 1 月 24 日

androidx.compose.animation:animation-*:1.6.0 已发布。版本 1.6.0 包含这些提交。

版本 1.6.0-rc01

2024 年 1 月 10 日

androidx.compose.animation:animation-*:1.6.0-rc01 已发布。版本 1.6.0-rc01 包含这些提交。

版本 1.6.0-beta03

2023 年 12 月 13 日

androidx.compose.animation:animation-*:1.6.0-beta03 已发布。版本 1.6.0-beta03 包含这些提交。

API 变更

  • 暂时从 AnimatedContentTransitionScope 中移除了 scaleInToFitContainerscaleOutToFitContainer,因为它们需要前瞻性布局(lookahead)。它们将在未来版本中默认启用或选择启用前瞻性布局时可用。

版本 1.6.0-beta02

2023 年 11 月 29 日

androidx.compose.animation:animation-*:1.6.0-beta02 已发布。版本 1.6.0-beta02 包含这些提交。

版本 1.6.0-beta01

2023 年 11 月 15 日

androidx.compose.animation:animation-*:1.6.0-beta01 已发布。版本 1.6.0-beta01 包含这些提交。

API 变更

  • ExitTransition.Hold 已重命名为 ExitTransition.KeepUntilTransitionsFinished,以使其更明确。( I1c490)
  • 您现在可以使用 keyframesWithSpline 通过单调样条插值任何 N 维值。它特别适用于插值位置值,例如 OffsetIntOffsetDpOffset。作为实验性 API 添加。

bug 修复

  • ArcLine 中添加了对 Sweep Gradient 的渲染器支持。( I4d5bb)
  • PageSize.Fixed 实现了 equals 和 hashcode。( Ie3ede, b/300134276)
  • 修复了 Window Inset 更改引起的二进制兼容性问题。( Iee695)
  • 移除了 Material3 Chip/Button 的 Material 核心层,因为微基准测试显示没有它性能更好。( I55555)

版本 1.6.0-alpha08

2023 年 10 月 18 日

androidx.compose.animation:animation-*:1.6.0-alpha08 已发布。版本 1.6.0-alpha08 包含这些提交。

API 变更

  • 已弃用 KeyframesSpecConfig#with,转而使用 KeyframesSpecConfig#using,后者保留了构建器模式。( I1d769)

版本 1.6.0-alpha07

2023 年 10 月 4 日

androidx.compose.animation:animation-*:1.6.0-alpha07 已发布。版本 1.6.0-alpha07 包含这些提交。

API 变更

  • 修复后的可滚动 Tabrows 现在具有 Primary 和 Secondary 变体。它们正确映射到 Material3 中定义的颜色和指示器行为。
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 现在公开滚动状态。( Iec8f5, b/260572337)

版本 1.6.0-alpha06

2023 年 9 月 20 日

androidx.compose.animation:animation-*:1.6.0-alpha06 已发布。版本 1.6.0-alpha06 包含这些提交。

版本 1.6.0-alpha05

2023 年 9 月 6 日

androidx.compose.animation:animation-*:1.6.0-alpha05 已发布。版本 1.6.0-alpha05 包含这些提交。

API 变更

  • 添加了 PathEasing 以允许将任意路径提供给缓动曲线。( Idb4b9)

版本 1.6.0-alpha04

2023 年 8 月 23 日

androidx.compose.animation:animation-*:1.6.0-alpha04 已发布。版本 1.6.0-alpha04 包含这些提交。

API 变更

  • 添加 SeekableTransitionState 以允许开发者控制过渡的进度。( I8e69d)

版本 1.6.0-alpha03

2023 年 8 月 9 日

androidx.compose.animation:animation-*:1.6.0-alpha03 已发布。版本 1.6.0-alpha03 包含这些提交。

API 变更

  • 一种新型的进入/退出过渡,它根据进入和退出动画期间动画容器的大小来缩放内容。LookaheadScope Composable 函数和接口现在是稳定的。( Ifb2ce)

版本 1.6.0-alpha02

2023 年 7 月 26 日

androidx.compose.animation:animation-*:1.6.0-alpha02 已发布。版本 1.6.0-alpha02 包含这些提交。

API 变更

  • 新的 ExitTransition.Hold,用于在进入和退出过渡都完成后在 AnimatedContent 中显示传出内容。( I5984f)
  • 用于指定可组合项允许输入的附加注释(I51109)

版本 1.6.0-alpha01

2023 年 6 月 21 日

androidx.compose.animation:animation-*:1.6.0-alpha01 已发布。版本 1.6.0-alpha01 包含这些提交。

新功能

  • 通过在前瞻性布局过程中报告目标大小,使 Modifier.animateContentSizeAnimatedVisibility 完全集成到前瞻性布局系统。

API 变更

  • IntrinsincMeasureScope 及其实现(例如 MeasureScope)中的新属性,用于指示当前测量过程是否为前瞻性布局过程。( I7a812)

bug 修复

  • 移除了弹簧动画中的分配。( Ie9431)
  • Enum.valueOf 的值参数名称已更改(Ia9b89)
  • Enum valueOf 抛出更多异常(I818fe)

版本 1.5

版本 1.5.4

2023 年 10 月 18 日

androidx.compose.animation:animation-*:1.5.4 已发布。版本 1.5.4 包含这些提交。

版本 1.5.3

2023 年 10 月 4 日

androidx.compose.animation:animation-*:1.5.3 已发布。此版本没有更改

版本 1.5.2

2023 年 9 月 27 日

androidx.compose.animation:animation-*:1.5.2 已发布。版本 1.5.2 包含这些提交。

版本 1.5.1

2023 年 9 月 6 日

androidx.compose.foundation:foundation-*:1.5.1 已发布。版本 1.5.1 包含这些提交。

bug 修复

  • 修复了当 readOnly 为 true 时文本字段显示键盘且可编辑的问题。还修复了当 readOnly 从 true 更改为 false 而焦点仍在时键盘不显示的问题。( I34a19, b/246909589)

版本 1.5.1

2023 年 9 月 6 日

androidx.compose.animation:animation-*:1.5.1 已发布。版本 1.5.1 包含这些提交。

版本 1.5.0

2023 年 8 月 9 日

androidx.compose.animation:animation-*:1.5.0 已发布。版本 1.5.0 包含这些提交。

版本 1.5.0-rc01

2023 年 7 月 26 日

androidx.compose.animation:animation-*:1.5.0-rc01 已发布。版本 1.5.0-rc01 包含这些提交。

bug 修复

  • 修复了在基本状态类型(如 MutableIntState)上调用 .value 会报告带有无效修复的 lint 警告的问题。现在,检查将建议迁移到正确的属性。( Iba953, b/287279257)

  • 现提供一项可选检查,用于建议将 mutableStateOf() 调用迁移到其对应的基元专用类型。其 lint ID 为 AutoboxingStateCreation。此前,此检查默认对所有项目启用。要在 Android Studio 编辑器和项目的 lint 输出中看到此警告,请通过在模块的 build.gradlebuild.gradle.kts 配置中声明 warning "AutoboxingStateCreation"(如所示)来将其严重性从信息性更改为警告(或更高)。( I34f7e)

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

版本 1.5.0-beta03

2023 年 6 月 28 日

androidx.compose.animation:animation-*:1.5.0-beta03 已发布。版本 1.5.0-beta03 包含这些提交。

版本 1.5.0-beta02

2023 年 6 月 7 日

androidx.compose.animation:animation-*:1.5.0-beta02 已发布。版本 1.5.0-beta02 包含这些提交。

版本 1.5.0-beta01

2023 年 5 月 24 日

androidx.compose.animation:animation-*:1.5.0-beta01 已发布。版本 1.5.0-beta01 包含这些提交。

API 变更

  • 移除了重新组合、颜色动画和 AndroidComposeView 中的分配。( Ib2bfa)

bug 修复

  • 移除了弹簧动画中的分配(Ie9431)

版本 1.5.0-alpha04

2023 年 5 月 10 日

androidx.compose.animation:animation-*:1.5.0-alpha04 已发布。版本 1.5.0-alpha04 包含这些提交。

API 变更

  • ContentKey 现在在 AnimatedContent 中受支持,以允许更精细地控制何时发生过渡。( Ic069b)

版本 1.5.0-alpha03

2023 年 4 月 19 日

androidx.compose.animation:animation-*:1.5.0-alpha03 已发布。版本 1.5.0-alpha03 包含这些提交。

新功能

  • LookaheadScopeSubcomposeLayout 的新默认行为。它允许没有条件槽(例如 TabRowScaffoldBoxWithConstraints 等)的 SubcomposeLayouts 与前瞻性动画良好配合。

API 变更

  • 新的默认 intermediateMeasurePolicy,它重用前瞻性布局过程中的测量策略,允许没有条件槽的 SubcomposeLayout 子类型(如 ScaffoldTabRowBoxWithConstraints)默认与前瞻性布局一起工作。( Id84c8)
  • 将中缀函数 `with` 重命名为 togetherWith,用于组合进入和退出过渡。新的 AnimatedContentScope 作为内容 lambda 的接收器。( Ic39ae)

版本 1.5.0-alpha02

2023 年 4 月 5 日

androidx.compose.animation:animation-*:1.5.0-alpha02 已发布。版本 1.5.0-alpha02 包含这些提交。

新功能

  • 新的实验性 API,支持 SubcomposeLayout 中的前瞻性布局。这将允许 SubcomposeLayoutLookaheadScope 中正常运行。针对 SubcomposeLayout 特定子类型的更多开箱即用支持即将推出。

API 变更

  • 新的 SubcomposeLayout API,它接受一个额外的中间测量策略,用于处理基于前瞻性布局的动画期间的测量/布局逻辑。( I017d3)

版本 1.5.0-alpha01

2023 年 3 月 22 日

androidx.compose.animation:animation-*:1.5.0-alpha01 已发布。版本 1.5.0-alpha01 包含这些提交。

API 变更

  • AnimatedContent API 现在已稳定,AnimatedContentScope 已重命名为 AnimatedContentTransitionScopescaleInscaleOut 现在是稳定的 API。( Iaf54e)

版本 1.4

版本 1.4.3

2023 年 5 月 3 日

androidx.compose.animation:animation:1.4.3androidx.compose.animation:animation-core:1.4.3androidx.compose.animation:animation-graphics:1.4.3 已发布,无更改(仅版本升级)。

版本 1.4.2

2023 年 4 月 19 日

androidx.compose.animation:animation:1.4.2androidx.compose.animation:animation-core:1.4.2androidx.compose.animation:animation-graphics:1.4.2 已发布,无更改。版本 1.4.2 包含这些提交。

版本 1.4.1

2023 年 4 月 5 日

androidx.compose.animation:animation:1.4.1androidx.compose.animation:animation-core:1.4.1androidx.compose.animation:animation-graphics:1.4.1 已发布,无更改。版本 1.4.1 包含这些提交。

版本 1.4.0

2023 年 3 月 22 日

androidx.compose.animation:animation:1.4.0androidx.compose.animation:animation-core:1.4.0androidx.compose.animation:animation-graphics:1.4.0 已发布。版本 1.4.0 包含这些提交。

自 1.3.0 以来的重要更改

  • Tooling label 在 rememberInfiniteTransition 和所有 InfiniteTransition 和 Transition 的扩展函数(例如 InfiniteTransition#animateColor)中受支持。( I56ef7)

版本 1.4.0-rc01

2023 年 3 月 8 日

androidx.compose.animation:animation:1.4.0-rc01androidx.compose.animation:animation-core:1.4.0-rc01androidx.compose.animation:animation-graphics:1.4.0-rc01 已发布,无更改。版本 1.4.0-rc01 包含这些提交。

版本 1.4.0-beta02

2023 年 2 月 22 日

androidx.compose.animation:animation:1.4.0-beta02androidx.compose.animation:animation-core:1.4.0-beta02androidx.compose.animation:animation-graphics:1.4.0-beta02 已发布,无更改。版本 1.4.0-beta02 包含这些提交。

版本 1.4.0-beta01

2023 年 2 月 8 日

androidx.compose.animation:animation:1.4.0-beta01androidx.compose.animation:animation-core:1.4.0-beta01androidx.compose.animation:animation-graphics:1.4.0-beta01 已发布,无更改。版本 1.4.0-beta01 包含这些提交。

版本 1.4.0-alpha05

2023 年 1 月 25 日

androidx.compose.animation:animation:1.4.0-alpha05androidx.compose.animation:animation-core:1.4.0-alpha05androidx.compose.animation:animation-graphics:1.4.0-alpha05 已发布。版本 1.4.0-alpha05 包含这些提交。

更改

  • 自上一个 alpha 版本以来,动画库无更改,仅版本升级

版本 1.4.0-alpha04

2023 年 1 月 11 日

androidx.compose.animation:animation:1.4.0-alpha04androidx.compose.animation:animation-core:1.4.0-alpha04androidx.compose.animation:animation-graphics:1.4.0-alpha04 已发布。版本 1.4.0-alpha04 包含这些提交。

新功能

  • Tooling label 在 rememberInfiniteTransition 和所有 InfiniteTransitionTransition 的扩展函数(例如 InfiniteTransition#animateColor)中受支持。( I56ef7)

API 变更

  • InfiniteTransition#TransitionAnimationStateInfiniteTransition#animations API 现在是公共的。( I36682)

版本 1.4.0-alpha03

2022 年 12 月 7 日

androidx.compose.animation:animation:1.4.0-alpha03androidx.compose.animation:animation-core:1.4.0-alpha03androidx.compose.animation:animation-graphics:1.4.0-alpha03 已发布。版本 1.4.0-alpha03 包含这些提交。

API 变更

  • 在使用 Compose 规则的 UI 测试中,在 withFrameNanos 回调期间恢复的协同程序将不会被调度,直到所有帧回调运行完毕。这与 Compose 在正常运行时行为一致。但是,依赖旧行为的测试可能会失败。这应该只会影响直接调用 withFrameNanoswithFrameMillis 的代码,并且其逻辑位于传递给这些函数的回调之外,可能需要移动到回调内部。有关示例,请参阅此变更列表中的动画测试更改
  • TestMonotonicFrameClock 构造函数和工厂函数添加了可选的 onPerformTraversals: (Long) -> Unit 参数,用于在 withFrameNanos 回调之后但在恢复调用者的协同程序之前运行代码。( Idb413, b/254115946, b/222093277, b/255802670)
  • AnimatedContent 中的新参数,用于工具标签(Iebe2d)

版本 1.4.0-alpha02

2022 年 11 月 9 日

androidx.compose.animation:animation:1.4.0-alpha02androidx.compose.animation:animation-core:1.4.0-alpha02androidx.compose.animation:animation-graphics:1.4.0-alpha02 已发布。版本 1.4.0-alpha02 包含这些提交。

API 变更

  • 添加 ToolingState 以允许工具更改 Composable 的内部状态(Ie6614)

版本 1.4.0-alpha01

2022 年 10 月 24 日

androidx.compose.animation:animation:1.4.0-alpha01androidx.compose.animation:animation-core:1.4.0-alpha01androidx.compose.animation:animation-graphics:1.4.0-alpha01 已发布。版本 1.4.0-alpha01 包含这些提交。

bug 修复

  • 修复了 AnimatedContent 中不正确的动画中断问题(b/238662479)

版本 1.3

版本 1.3.3

2023 年 1 月 11 日

androidx.compose.animation:animation:1.3.3androidx.compose.animation:animation-core:1.3.3androidx.compose.animation:animation-graphics:1.3.3 已发布。版本 1.3.3 包含这些提交。

  • 自 1.3.2 以来无更改。

版本 1.3.2

2022 年 12 月 7 日

androidx.compose.animation:animation:1.3.2androidx.compose.animation:animation-core:1.3.2androidx.compose.animation:animation-graphics:1.3.2 已发布。版本 1.3.2 包含这些提交。

bug 修复

  • 已更新以支持 androidx.compose.ui 1.3.2

版本 1.3.1

2022 年 11 月 9 日

androidx.compose.animation:animation:1.3.1androidx.compose.animation:animation-core:1.3.1androidx.compose.animation:animation-graphics:1.3.1 已发布。版本 1.3.1 包含这些提交。

版本 1.3.0

2022 年 10 月 24 日

androidx.compose.animation:animation:1.3.0androidx.compose.animation:animation-core:1.3.0androidx.compose.animation:animation-graphics:1.3.0 已发布。版本 1.3.0 包含这些提交。

自 1.2.0 以来的重要更改

  • 新的缓动函数集已稳定

版本 1.3.0-rc01

2022 年 10 月 5 日

androidx.compose.animation:animation:1.3.0-rc01androidx.compose.animation:animation-core:1.3.0-rc01androidx.compose.animation:animation-graphics:1.3.0-rc01 已发布。版本 1.3.0-rc01 包含这些提交。

版本 1.3.0-beta03

2022 年 9 月 21 日

androidx.compose.animation:animation:1.3.0-beta03androidx.compose.animation:animation-core:1.3.0-beta03androidx.compose.animation:animation-graphics:1.3.0-beta03 已发布。版本 1.3.0-beta03 包含这些提交。

  • 自 1.3.0-beta02 以来无更改。

版本 1.3.0-beta02

2022 年 9 月 7 日

androidx.compose.animation:animation:1.3.0-beta02androidx.compose.animation:animation-core:1.3.0-beta02androidx.compose.animation:animation-graphics:1.3.0-beta02 已发布。版本 1.3.0-beta02 包含这些提交。

  • 从编译器选项中移除了 Kotlin.experimental,因为它已被弃用

版本 1.3.0-beta01

2022 年 8 月 24 日

androidx.compose.animation:animation:1.3.0-beta01androidx.compose.animation:animation-core:1.3.0-beta01androidx.compose.animation:animation-graphics:1.3.0-beta01 已发布。版本 1.3.0-beta01 包含这些提交。

版本 1.3.0-alpha03

2022 年 8 月 10 日

androidx.compose.animation:animation:1.3.0-alpha03androidx.compose.animation:animation-core:1.3.0-alpha03androidx.compose.animation:animation-graphics:1.3.0-alpha03 已发布。版本 1.3.0-alpha03 包含这些提交。

API 变更

  • CrossfadeanimateAsStateAnimatable 中的新参数,用于工具标签(Iac08a)
  • 添加了 atFraction 函数,用于在某个比例而不是特定持续时间定义关键帧。( I20c76, b/232059455)

版本 1.3.0-alpha02

2022 年 7 月 27 日

androidx.compose.animation:animation:1.3.0-alpha02androidx.compose.animation:animation-core:1.3.0-alpha02androidx.compose.animation:animation-graphics:1.3.0-alpha02 已发布。版本 1.3.0-alpha02 包含这些提交。

版本 1.3.0-alpha01

2022 年 6 月 29 日

androidx.compose.animation:animation:1.3.0-alpha01androidx.compose.animation:animation-core:1.3.0-alpha01androidx.compose.animation:animation-graphics:1.3.0-alpha01 已发布。版本 1.3.0-alpha01 包含这些提交。

API 变更

  • 新的 LookaheadLayout,支持在实际测量/布局之前进行前瞻性布局过程。这允许在布局更改时进行预计算,同时允许前瞻性布局后的测量/布局使用预计算的大小/位置来对大小和位置进行目标动画。SubcomposeLayouts 尚不支持,但将在即将发布的版本中支持。( I477f5)

版本 1.2

版本 1.2.1

2022 年 8 月 10 日

androidx.compose.animation:animation:1.2.1androidx.compose.animation:animation-core:1.2.1androidx.compose.animation:animation-graphics:1.2.1 已发布。版本 1.2.1 包含这些提交。

版本 1.2.0

2022 年 7 月 27 日

androidx.compose.animation:animation:1.2.0androidx.compose.animation:animation-core:1.2.0androidx.compose.animation:animation-graphics:1.2.0 已发布。版本 1.2.0 包含这些提交。

自 1.1.0 以来的重要更改

  • Compose 动画现在支持开发者选项中的“动画时长缩放”设置。
  • 大量新的实验性缓动曲线。
  • AnimatedImageVector 现在支持 repeatCountrepeatMode

版本 1.2.0-rc03

2022 年 6 月 29 日

androidx.compose.animation:animation:1.2.0-rc03androidx.compose.animation:animation-core:1.2.0-rc03androidx.compose.animation:animation-graphics:1.2.0-rc03 已发布。版本 1.2.0-rc03 包含这些提交。

  • 自 1.2.0-rc02 以来无更改。

版本 1.2.0-rc02

2022 年 6 月 22 日

androidx.compose.animation:animation:1.2.0-rc02androidx.compose.animation:animation-core:1.2.0-rc02androidx.compose.animation:animation-graphics:1.2.0-rc02 已发布。版本 1.2.0-rc02 包含这些提交。

bug 修复

  • 移除了 Easing 函数上的 ExperimentalEasingApi 注解(Ied441)

版本 1.2.0-rc01

2022 年 6 月 15 日

androidx.compose.animation:animation:1.2.0-rc01androidx.compose.animation:animation-core:1.2.0-rc01androidx.compose.animation:animation-graphics:1.2.0-rc01 已发布。版本 1.2.0-rc01 包含这些提交。

API 变更

  • Compose 库中的接口现在使用 jdk8 默认接口方法构建(I5bcf1)

版本 1.2.0-beta03

2022 年 6 月 1 日

androidx.compose.animation:animation:1.2.0-beta03androidx.compose.animation:animation-core:1.2.0-beta03androidx.compose.animation:animation-graphics:1.2.0-beta03 已发布。版本 1.2.0-beta03 包含这些提交。

API 变更

  • 为动画添加了实验性缓动曲线(I64a38)

版本 1.2.0-beta02

2022 年 5 月 18 日

androidx.compose.animation:animation:1.2.0-beta02androidx.compose.animation:animation-core:1.2.0-beta02androidx.compose.animation:animation-graphics:1.2.0-beta02 已发布。版本 1.2.0-beta02 包含这些提交。

版本 1.2.0-beta01

2022 年 5 月 11 日

androidx.compose.animation:animation:1.2.0-beta01androidx.compose.animation:animation-core:1.2.0-beta01androidx.compose.animation:animation-graphics:1.2.0-beta01 已发布。版本 1.2.0-beta01 包含这些提交。

  • 这是 1.2 的第一个 Beta 版本!自上一个 alpha 版本以来没有更改。

版本 1.2.0-alpha08

2022 年 4 月 20 日

androidx.compose.animation:animation:1.2.0-alpha08androidx.compose.animation:animation-core:1.2.0-alpha08androidx.compose.animation:animation-graphics:1.2.0-alpha08 已发布。版本 1.2.0-alpha08 包含这些提交。

版本 1.2.0-alpha07

2022 年 4 月 6 日

androidx.compose.animation:animation:1.2.0-alpha07androidx.compose.animation:animation-core:1.2.0-alpha07androidx.compose.animation:animation-graphics:1.2.0-alpha07 已发布。版本 1.2.0-alpha07 包含这些提交。

API 变更

版本 1.2.0-alpha06

2022 年 3 月 23 日

androidx.compose.animation:animation:1.2.0-alpha06androidx.compose.animation:animation-core:1.2.0-alpha06androidx.compose.animation:animation-graphics:1.2.0-alpha06 已发布。版本 1.2.0-alpha06 包含这些提交。

API 变更

  • 更新了矢量可绘制文件的解析,以支持自动镜像,如果当前布局方向为 RTL,则翻转 VectorPainter 的内容。( I79cd9, b/185760237)

bug 修复

  • 更新了 Vector graphics API 以使用正确的可组合注解 @VectorComposable 而不是 @UiComposable(I942bc)

版本 1.2.0-alpha05

2022 年 3 月 9 日

androidx.compose.animation:animation:1.2.0-alpha05androidx.compose.animation:animation-core:1.2.0-alpha05androidx.compose.animation:animation-graphics:1.2.0-alpha05 已发布。版本 1.2.0-alpha05 包含这些提交。

API 变更

  • 万岁!Compose 动画现在支持开发者选项中的“动画时长缩放”设置。( I5a4fc, b/161675988)

版本 1.2.0-alpha04

2022 年 2 月 23 日

androidx.compose.animation:animation:1.2.0-alpha04androidx.compose.animation:animation-core:1.2.0-alpha04androidx.compose.animation:animation-graphics:1.2.0-alpha04 已发布。版本 1.2.0-alpha04 包含这些提交。

版本 1.2.0-alpha03

2022 年 2 月 9 日

androidx.compose.animation:animation:1.2.0-alpha03androidx.compose.animation:animation-core:1.2.0-alpha03androidx.compose.animation:animation-graphics:1.2.0-alpha03 已发布。版本 1.2.0-alpha03 包含这些提交。

版本 1.2.0-alpha02

2022 年 1 月 26 日

androidx.compose.animation:animation:1.2.0-alpha02androidx.compose.animation:animation-core:1.2.0-alpha02androidx.compose.animation:animation-graphics:1.2.0-alpha02 已发布。版本 1.2.0-alpha02 包含这些提交。

版本 1.2.0-alpha01

2022 年 1 月 12 日

androidx.compose.animation:animation:1.2.0-alpha01androidx.compose.animation:animation-core:1.2.0-alpha01androidx.compose.animation:animation-graphics:1.2.0-alpha01 已发布。版本 1.2.0-alpha01 包含这些提交。

API 变更

  • 使用 AnimatedImageVector.animatedVectorResource 代替 animatedVectorResource 加载 <animated-vector> 资源文件。
    • 使用 rememberAnimatedVectorResource 代替 AnimatedImageVector#painterFor 渲染 AnimatedImageVector。( I9c300)

bug 修复

  • 为 Animatable 和 AnimationResult 添加 toString 方法。( Icd3a6)

依赖项更新

  • 现在依赖于 Kotlin 1.6.10

版本 1.1

版本 1.1.1

2022 年 2 月 23 日

androidx.compose.animation:animation:1.1.1androidx.compose.animation:animation-core:1.1.1androidx.compose.animation:animation-graphics:1.1.1 已发布。版本 1.1.1 包含这些提交。

bug 修复

版本 1.1.0

2022 年 2 月 9 日

androidx.compose.animation:animation:1.1.0androidx.compose.animation:animation-core:1.1.0androidx.compose.animation:animation-graphics:1.1.0 已发布。版本 1.1.0 包含这些提交。

自 1.0.0 以来的重要更改

  • 稳定支持 Android 12 的过度滚动效果
  • 改进了触摸目标尺寸
  • 请注意,与 Compose 1.0 相比,Material 组件将扩展其布局空间,以符合 Material 无障碍功能指南中有关触摸目标尺寸的要求。例如,Button 触摸目标将扩展到最小 48x48dp 的大小,即使您将 Button 的大小设置为更小也是如此。这使 Compose Material 与 Material Design Components 的行为保持一致,如果您混合使用 Views 和 Compose,则可提供一致的行为。此更改还确保当您使用 Compose Material 组件创建 UI 时,将满足触摸目标无障碍功能的最低要求。
  • 稳定支持导航栏
  • 将许多以前的实验性 API 升级为稳定版
  • 支持更高版本的 Kotlin

版本 1.1.0-rc03

2022 年 1 月 26 日

androidx.compose.animation:animation:1.1.0-rc03androidx.compose.animation:animation-core:1.1.0-rc03androidx.compose.animation:animation-graphics:1.1.0-rc03 已发布。版本 1.1.0-rc03 包含这些提交。

bug 修复

  • 已更新以支持 Compose Material 1.1.0-rc03

版本 1.1.0-rc01

2021 年 12 月 15 日

androidx.compose.animation:animation:1.1.0-rc01androidx.compose.animation:animation-core:1.1.0-rc01 已发布。版本 1.1.0-rc01 包含这些提交。

API 变更

  • 使用 AnimatedImageVector.animatedVectorResource 代替 animatedVectorResource 加载 <animated-vector> 资源文件。
    • 使用 rememberAnimatedVectorResource 代替 AnimatedImageVector#painterFor 渲染 AnimatedImageVector。( I9c300)

版本 1.1.0-beta04

2021 年 12 月 1 日

androidx.compose.animation:animation:1.1.0-beta04androidx.compose.animation:animation-core:1.1.0-beta04androidx.compose.animation:animation-graphics:1.1.0-beta04 已发布。版本 1.1.0-beta04 包含这些提交。

新功能

  • 已更新以兼容 Kotlin 1.6.0

版本 1.1.0-beta03

2021 年 11 月 17 日

androidx.compose.animation:animation:1.1.0-beta03androidx.compose.animation:animation-core:1.1.0-beta03androidx.compose.animation:animation-graphics:1.1.0-beta03 已发布。版本 1.1.0-beta03 包含这些提交。

API 变更

  • 添加了新的修饰符 Modifier.onPlaced 以允许观察位置更改。因此,可以根据观察到的位置更改对子修饰符的偏移量进行额外更改。( I558fd)
  • Crossfade 中新的 contentKey 支持。ContentKey 将用于动画系统的相等性检查。因此,可以通过为不同状态指定适当的 contentKey 来实现自定义状态差异化。

    ContentKey 也将用作保存和恢复内容的键。( I2e055, b/197907070)

版本 1.1.0-beta02

2021 年 11 月 3 日

androidx.compose.animation:animation:1.1.0-beta02androidx.compose.animation:animation-core:1.1.0-beta02androidx.compose.animation:animation-graphics:1.1.0-beta02 已发布。版本 1.1.0-beta02 包含这些提交。

bug 修复

  • 支持工具的新动画 API。具体来说,它们允许工具检查 Transitions 中的动画及其配置。( I4116e)

版本 1.1.0-beta01

2021 年 10 月 27 日

androidx.compose.animation:animation:1.1.0-beta01androidx.compose.animation:animation-core:1.1.0-beta01androidx.compose.animation:animation-graphics:1.1.0-beta01 已发布。版本 1.1.0-beta01 包含这些提交。

API 变更

  • 支持工具的新动画 API。具体来说,它们允许工具检查 Transitions 中的动画及其配置。( I4116e)

版本 1.1.0-alpha06

2021 年 10 月 13 日

androidx.compose.animation:animation:1.1.0-alpha06androidx.compose.animation:animation-core:1.1.0-alpha06androidx.compose.animation:animation-graphics:1.1.0-alpha06 已发布。版本 1.1.0-alpha06 包含这些提交。

版本 1.1.0-alpha05

2021 年 9 月 29 日

androidx.compose.animation:animation:1.1.0-alpha05androidx.compose.animation:animation-core:1.1.0-alpha05androidx.compose.animation:animation-graphics:1.1.0-alpha05 已发布。版本 1.1.0-alpha05 包含这些提交。

API 变更

  • EnterTransitionExitTransition 和一些 AnimatedVisibility API 已稳定。MutableTransitionState.isIdle 也不再是实验性的。( I5072d)

  • 重大更改:Enter/ExitTransition 工厂中的 lambda 已移至参数列表的最后一个位置。( I5072d)

版本 1.1.0-alpha04

2021 年 9 月 15 日

androidx.compose.animation:animation:1.1.0-alpha04androidx.compose.animation:animation-core:1.1.0-alpha04androidx.compose.animation:animation-graphics:1.1.0-alpha04 已发布。版本 1.1.0-alpha04 包含这些提交。

版本 1.1.0-alpha03

2021 年 9 月 1 日

androidx.compose.animation:animation:1.1.0-alpha03androidx.compose.animation:animation-core:1.1.0-alpha03androidx.compose.animation:animation-graphics:1.1.0-alpha03 已发布。版本 1.1.0-alpha03 包含这些提交。

新功能

  • 更新了 Compose 1.1.0-alpha03 以依赖 Kotlin 1.5.30。( I74545)

版本 1.1.0-alpha02

2021 年 8 月 18 日

androidx.compose.animation:animation:1.1.0-alpha02androidx.compose.animation:animation-core:1.1.0-alpha02androidx.compose.animation:animation-graphics:1.1.0-alpha02 已发布。版本 1.1.0-alpha02 包含这些提交。

API 变更

  • StartOffset 现在在 repeatable 和 infiniteRepeatable 中受支持,作为延迟开始时间或在动画开始前快进动画的方式。此开始偏移不会重复。( Ic679f, b/195079908)
  • 新的进入/退出过渡,用于缩放。它可以与其他类型的进入/退出过渡结合使用。( I372da, b/191325593)

版本 1.1.0-alpha01

2021 年 8 月 4 日

androidx.compose.animation:animation:1.1.0-alpha01androidx.compose.animation:animation-core:1.1.0-alpha01androidx.compose.animation:animation-graphics:1.1.0-alpha01 已发布。版本 1.1.0-alpha01 包含这些提交。

API 变更

  • AnimatedImageVector 和相关 API 现在位于新的 androidx.compose.animation:animation-graphics 模块中。( I60873)

bug 修复

版本 1.0

版本 1.0.5

2021 年 11 月 3 日

androidx.compose.animation:animation:1.0.5androidx.compose.animation:animation-core:1.0.5 已发布。版本 1.0.5 包含这些提交。

bug 修复

  • 修复了跟踪 derivedStateOf 实例时崩溃的问题(aosp/1792247)

版本 1.0.4

2021 年 10 月 13 日

androidx.compose.animation:animation:1.0.4androidx.compose.animation:animation-core:1.0.4 已发布。版本 1.0.4 包含这些提交。

依赖项更新

  • 已更新以依赖 Kotlin 1.5.31

版本 1.0.3

2021 年 9 月 29 日

androidx.compose.animation:animation:1.0.3androidx.compose.animation:animation-core:1.0.3 已发布。版本 1.0.3 包含这些提交。

依赖项更新

  • 已更新以依赖 Kotlin 1.5.30

版本 1.0.2

2021 年 9 月 1 日

androidx.compose.animation:animation:1.0.2androidx.compose.animation:animation-core:1.0.2 已发布。版本 1.0.2 包含这些提交。

已更新以支持 Compose 1.0.2 版本。Compose 1.0.2 仍与 Kotlin 1.5.21 兼容。

版本 1.0.1

2021 年 8 月 4 日

androidx.compose.animation:animation:1.0.1androidx.compose.animation:animation-core:1.0.1 已发布。版本 1.0.1 包含这些提交。

依赖项更新

  • 已更新以依赖 Kotlin 1.5.21

版本 1.0.0

2021 年 7 月 28 日

androidx.compose.animation:animation:1.0.0androidx.compose.animation:animation-core:1.0.0 已发布。版本 1.0.0 包含这些提交。

1.0.0 的主要功能

这是 Compose 的第一个稳定版本。请参阅官方的Compose 发布博客了解更多详情!

已知问题

  • 如果您正在使用 Android Studio Bumblebee Canary 4 或 AGP 7.1.0-alpha04/7.1.0-alpha05,您可能会遇到以下崩溃

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    要修复此问题,请暂时将您的 minSdkVersion 增加到 24+,在您的 build.gradle 文件中。此问题将在下一版本的 Android Studio Bumblebee 和 AGP 7.1 中修复。( b/194289155)

版本 1.0.0-rc02

2021 年 7 月 14 日

androidx.compose.animation:animation:1.0.0-rc02androidx.compose.animation:animation-core:1.0.0-rc02 已发布。版本 1.0.0-rc02 包含这些提交。

版本 1.0.0-rc01

2021 年 7 月 1 日

androidx.compose.animation:animation:1.0.0-rc01androidx.compose.animation:animation-core:1.0.0-rc01 已发布。版本 1.0.0-rc01 包含这些提交。

bug 修复

版本 1.0.0-beta09

2021 年 6 月 16 日

androidx.compose.animation:animation:1.0.0-beta09androidx.compose.animation:animation-core:1.0.0-beta09 已发布。版本 1.0.0-beta09 包含这些提交。

API 变更

  • 新的 AnimatedContent Composable。它使用可自定义的 ContentTransform 来管理内容更改,当新目标内容进入和初始内容离开时。可以组合不同的进入和退出过渡以生成自定义的外观和感觉。AnimatedContent 作为内容转换的一部分,会自动调整其大小以匹配传入的内容。( I2c3df)
  • 已移除 ManualFrameClock。如果您需要控制动画,请改用 composeTestRule.mainClock。( I3c3e8, b/189951065)

已添加配置文件规则

此版本为以下 compose 模块添加了配置文件规则(I14ed6)

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

配置文件规则是什么?

  • 库的配置文件规则在位于 src/main 或同等目录中的文本文件 baseline-prof.txt 中指定。该文件每行指定一条规则,其中规则是用于匹配库中的方法或类的模式。这些规则的语法是人类可读的 ART 配置文件格式的超集,该格式在使用 adb shell profman --dump-classes-and-methods ... 时使用。这些规则有两种形式,分别针对方法或类。

  • 方法规则将具有以下模式

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • 类规则将具有以下模式

    <CLASS_DESCRIPTOR>
    
  • 此处,<FLAGS> 是字符 HSP 中的一个或多个,用于指示此方法是否应标记为“热点”、“启动时”或“启动后”。

  • <CLASS_DESCRIPTOR> 是目标方法所属类的描述符。例如,类 androidx.compose.runtime.SlotTable 将具有描述符 Landroidx/compose/runtime/SlotTable;

  • <METHOD_SIGNATURE> 是方法的签名,包括方法的名称、参数类型和返回类型。例如,LayoutNode 上的方法 fun isPlaced(): Boolean 具有签名 isPlaced()Z

  • 这些模式可以包含通配符(***?),以便单个规则包含多个方法或类。

这些规则有什么用?

  • 带有 H 标志的方法表示此方法是“热点”方法,应预先编译。

  • 带有 S 标志的方法表示它是在启动时调用的方法,应预先编译以避免在启动时编译和解释方法的开销。

  • 带有 P 标志的方法表示它是在启动后调用的方法。

  • 此文件中存在的类表示它在启动期间使用,应在堆中预分配,以避免类加载的开销。

这如何运作?

  • 库可以定义这些规则,这些规则将打包在 AAR 工件中。当包含这些工件的应用程序被构建时,这些规则将合并在一起,合并后的规则用于构建特定于应用程序的紧凑二进制 ART 配置文件。然后,当应用程序安装在设备上时,ART 可以利用此配置文件来预先编译应用程序的特定子集,以提高应用程序的性能,尤其是首次运行的性能。请注意,这不会对可调试应用程序产生任何影响。

版本 1.0.0-beta08

2021 年 6 月 2 日

androidx.compose.animation:animation:1.0.0-beta08androidx.compose.animation:animation-core:1.0.0-beta08 已发布。版本 1.0.0-beta08 包含这些提交。

bug 修复

  • 现在 detectDragGesuresdetectVerticalGesturesdetectHorizontalGestures 将自动消耗位置变化,无需在 onDrag 回调中调用 change.consumePositionChange (I42fc4, b/185096350, b/187320697)
  • Modifier.onGloballyPositioned() 已更改为报告此修饰符在修饰符链中的坐标,而不是应用所有修饰符后的布局坐标。这意味着现在修饰符的顺序会影响报告的坐标。( Ieb67d, b/177926591)

版本 1.0.0-beta07

2021 年 5 月 18 日

androidx.compose.animation:animation:1.0.0-beta07androidx.compose.animation:animation-core:1.0.0-beta07 已发布。版本 1.0.0-beta07 包含这些提交。

API 变更

  • 新的 AnimatedVisibility API 支持在 MutableTransitionState 中指定可见性。这还允许通过 currentStateisIdleAnimatedVisibility 外部观察动画状态。
    • Transition 中新的子过渡支持
    • 使用 AnimationScope.transition 在 AnimatedVisibility 中支持自定义退出/进入过渡动画
    • 所有 AnimatedVisibility 子项都可访问新的 animateEnterExit 修饰符
    • 已弃用接受 initiallyVisible 参数的 AnimatedVisibility API (I702f3)

版本 1.0.0-beta06

2021 年 5 月 5 日

androidx.compose.animation:animation:1.0.0-beta06androidx.compose.animation:animation-core:1.0.0-beta06 已发布。版本 1.0.0-beta06 包含这些提交。

版本 1.0.0-beta05

2021 年 4 月 21 日

androidx.compose.animation:animation:1.0.0-beta05androidx.compose.animation:animation-core:1.0.0-beta05 已发布。版本 1.0.0-beta05 包含这些提交。

bug 修复

  • ui-test-manifest 和 ui-tooling-data 中的 AndroidManifest 文件现在与 Android 12 兼容(I6f9de, b/184718994)

版本 1.0.0-beta04

2021 年 4 月 7 日

androidx.compose.animation:animation:1.0.0-beta04androidx.compose.animation:animation-core:1.0.0-beta04 已发布。版本 1.0.0-beta04 包含这些提交。

API 变更

  • 已移除 RowScopeColumnScopeBoxScopeBoxWithConstraintsScope 的公共实例。( I4e83e, b/181869067)

版本 1.0.0-beta03

2021 年 3 月 24 日

androidx.compose.animation:animation:1.0.0-beta03androidx.compose.animation:animation-core:1.0.0-beta03 已发布。版本 1.0.0-beta03 包含这些提交。

版本 1.0.0-beta02

2021 年 3 月 10 日

androidx.compose.animation:animation:1.0.0-beta02androidx.compose.animation:animation-core:1.0.0-beta02 已发布。版本 1.0.0-beta02 包含这些提交。

bug 修复

版本 1.0.0-beta01

2021 年 2 月 24 日

androidx.compose.animation:animation:1.0.0-beta01androidx.compose.animation:animation-core:1.0.0-beta01 已发布。版本 1.0.0-beta01 包含这些提交。

这是 Compose 1.0.0 Beta 的第一个版本。

API 变更

  • InteractionState 已被 [Mutable]InteractionSource 取代
    • 接口负责发出/收集交互事件。
    • 不再将 interactionState = remember { InteractionState() } 传递给 ButtonModifier.clickable() 等组件,而是使用 interactionSource = remember { MutableInteractionSource() }
    • 不再使用:Interaction.Pressed in interactionState,而是使用 InteractionSource 上的扩展函数,例如 InteractionSource.collectIsPressedAsState()。
    • 对于复杂用例,您可以使用 InteractionSource.interactions 观察交互流。有关更多信息,请参阅 InteractionSource 文档和示例。
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • smoothScrollBy 和 scrollBy 方法的软件包已更改为 androidx.compose.foundation.gestures.* (I3f7c1, b/175294473)
  • 尺寸修饰符已重命名。Modifier.width/height/size 已重命名为 requiredWidth/requiredHeight/requiredSize。Modifier.preferredWidth/preferredHeight/preferredSize 已重命名为 width/height/size。 (I5b414)
  • Orientation 已移至 foundation 包中。VelocityTracker 已从 ui.gesture 移至 ui.input.pointer。 (Iff4a8, b/175294473)
  • AnimationClockObservable 及其子类已移除。AnimatedFloat 已移除。 (Icde52, b/177457083)
  • Modifier.draggable 现在接受 DraggableState 而非简单的 lambda 表达式。您可以通过 rememberDraggableState { delta -> } 创建状态以获得与之前相同的行为 (Ica70f, b/175294473)
  • animate、animatedValue、AnimatedValue API 已移除 (If27bc, b/177457083)
  • AnimationEndReason.Interrupted 已移除。如果动画被中断,将抛出 CancellationException。 (I2cbbc, b/179695417)
  • TargetAnimation API 已移除。 (If47d1, b/177457083)

版本 1.0.0-alpha12

2021 年 2 月 10 日

androidx.compose.animation:animation:1.0.0-alpha12androidx.compose.animation:animation-core:1.0.0-alpha12 已发布。1.0.0-alpha12 版本包含以下提交。

API 变更

  • Modifier.pointerInput 现在需要 remember 键来指示何时为新依赖项重新启动指针输入检测协程。 (I849cd)
  • Bounds 已重命名为 DpRect (I4b32a)
  • 在整个动画系统中,将 AnimationSpec 的参数名称统一为 animationSpec。此外,将 Enter/ExitTransition 限制为接受 FiniteAnimationSpec。 (Ie47c5, b/177457083)
  • Animatable.snapTo 和 Animatable.stop 现在是 suspend 函数 (If4288)
  • 与我们之前移除了 state { 0 } 可组合项并推广使用如 remember { mutableStateOf(0) } 的方式类似,我们将移除 savedInstanceState { 0 } 可组合项。您应该改用 rememberSaveable { mutableStateOf(0) },如果 MutableState 中使用的类型可以存储在 Bundle 中,它将自动保存和恢复。如果以前您传递的是自定义 saver 对象,那么现在您需要使用 rememberSaveable 的新重载,它具有 stateSaver 参数。用法将如下所示: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • 更新了 Crossfade 的方法签名,使其与动画系统的其余部分更加一致。 (Ib05ed, b/177457083)
  • rememberSavedInstanceState() 已重命名为 rememberSaveable() 并移至 androidx.compose.runtime.saveable 包中。 (I1366e, b/177338004)
  • RestorableStateHolder 已重命名为 SaveableStateHolder 并移至 androidx.compose.runtime.saveable 包中。内部方法 RestorableStateProvider 已重命名为 SaveableStateProvider。通用类型已移除,因此您现在只需将 Any 作为键传递。不再需要 Experimental 注解。 (I0902e, b/174598702)
  • 更新了 Modifier.animateContentSize API,使其与动画系统的其余部分保持一致。 (I0bf75, b/177457083)
  • AnimatedValue/Float 现已弃用。请改用 Animatable。 (I71345, b/177457083)
  • tapGestureFilter、doubleTapGestureFilter、longPressGestureFilter 和 pressIndicaitonGestureFilter 已弃用。请改用 Modifier.clickable 或 Modifier.pointerInput 搭配 detectTapGestures 函数。 (I6baf9, b/175294473)
  • 引入了 InfiniteAnimationPolicy 协程上下文元素,该元素将应用于无限动画中。默认情况下不安装任何策略,但在使用 ComposeTestRule 运行测试时除外。 (I50ec4, b/151940543)
  • 已从一些很少使用的类中移除了解构和 copy() 方法。 (I26702, b/178659281)
  • 动画播放时间现在统一为纳秒 (If776a)
  • compose:runtime-dispatch 工件现已弃用。MonotonicFrameClock 现在可以在 compose:runtime 中找到,AndroidUiDispatcher 可以在 compose:ui 中找到。 (Ib5c36)
  • 添加了 Animation.isInfiniteVectorizedAnimationSpec.isInfinite,它们指示动画是否为无限。这可以在动画实现中使用,以对这类动画进行特殊处理。例如,可以显示一个特殊的“剩余时间”消息,或者在测试期间可以取消动画以防止无限期等待空闲。 (Iebb05, b/151940543)
  • 动画时间类型使用 Long 而不是 Uptime (Ie3aa7, b/177420019)

版本 1.0.0-alpha11

2021 年 1 月 28 日

androidx.compose.animation:animation:1.0.0-alpha11androidx.compose.animation:animation-core:1.0.0-alpha11 已发布。1.0.0-alpha11 版本包含以下提交。

API 变更

  • 基于 TransitionDefinition 的 Transition 已弃用 (I0ac57)
  • 为 Transition 和子动画添加了 label 字段,以便在工具中显示 (I619fb)
  • animateAsState 现在是 animateFooAsState,其中 Foo 是被动画变量的类型。例如 Float、Dp、Offset 等 (Ie7e25)
  • 新的 InfiniteTransition,可以运行任意数量的子动画。 (I1da81)
  • 更改 Material 有状态参数接口,使其具有 @Composable 函数,这些函数返回 State<T>。添加 Animatable.asState() 以便更轻松地将 Animatable 转换为 State。还将 animateElevation 更改为 Animatable 上的 suspend 扩展。 (If613c)

bug 修复

  • onCommit、onDispose 和 onActive 已弃用,取而代之的是 SideEffect 和 DisposableEffect API (If760e)
  • 现在支持 updateTransition 中的初始状态 (Initial State) (Ifd51d)
  • 已为 Image 和 Icon 添加了内容描述参数。它用于向辅助功能服务提供描述 (I2ac4c)
  • invalidate 和 compositionReference() 现已弃用,分别由 currentRecomposeScope 和 rememberCompositionReference 取代。 (I583a8)
  • Duration 和 Uptime 将替换为 Long 毫秒,这一步将移除指针输入对这些类的依赖。 (Ia33b2, b/175142755, b/177420019)
  • clickable、toggleable 和 selectable 现在可以在组合之外创建 (I0a130, b/172938345, b/175294473)
  • Easing 已更改为函数式接口 (Ib14e5)
  • LazyColumn/LazyRow/LazyVerticalGrid 作用域新增 items(count: Int) 工厂方法。items(items: List)itemsIndexed(items: List) 现在是扩展函数,因此在使用时必须手动导入它们。数组的新扩展重载:items(items: Array) 和 itemsIndexed(Array) (I803fc, b/175562574)
  • 在测试中利用 TestCoroutineDispatcher (I532b6)
  • 移除了 PointerInputData 并修改了 PointerInputChange,使其拥有 PointerInputData 的所有字段。将 PointerInputEvent 和 PointerInputEventData 设置为内部,因为它们未在任何公共 API 中使用。 (Ifff97, b/175142755)

版本 1.0.0-alpha10

2021 年 1 月 13 日

androidx.compose.animation:animation:1.0.0-alpha10androidx.compose.animation:animation-core:1.0.0-alpha10 已发布。1.0.0-alpha10 版本包含以下提交。

API 变更

  • 修改了 Velocity,使其具有组件部分和数学运算。 (Ib0447)
  • @ExperimentalTesting 重命名为 @ExperimentalTestApi,以与类似的实验性 API 注解保持一致 (Ia4502, b/171464963)
  • 将 Position 重命名为 DpOffset 并移除了 getDistance() (Ib2dfd)
  • 移除了 Any.identityHashCode() 公共 API (I025d7)

bug 修复

  • 新的基于协程的 Animatable API,确保其动画之间互斥。新的 DecayAnimationSpec 支持多维衰减动画 (I820f2, b/168014930)
  • animate() 现已由 animateAsState() 取代,后者返回一个 State<T> 而不是 T。这可以带来更好的性能,因为失效范围可以缩小到读取 State 值的位置。 (Ib179e)

版本 1.0.0-alpha09

2020 年 12 月 16 日

androidx.compose.animation:animation:1.0.0-alpha09androidx.compose.animation:animation-core:1.0.0-alpha09 已发布。1.0.0-alpha09 版本包含以下提交。

API 变更

  • 将 Dp.VectorConverter、Position.VectorConverter 等移至 animation-core,并弃用了旧的 VectorConveters (If0c4b)
  • 引入了一整套新的 Transition API,改进了易用性,并支持动态添加动画和动态计算动画目标。这些 API 被标记为实验性,以便与基于 TransitionDefinition 的 API 轻松区分。 (Ia7fe3)

bug 修复

  • offset 修饰符中的 Lambda 表达式现在返回 IntOffset 而不是 Float。 (Ic9ee5, b/174137212, b/174146755)
  • 弃用 LazyColumnFor, LazyRowFor, LazyColumnForIndexed 和 LazyRowForIndexed。请改用 LazyColumn 和 LazyRow。 (I5b48c)
  • 对于 suspending 指针输入 API,将 HandlePointerInputScope 重命名为 AwaitPointerEventScope,并将 handlePointerInput() 重命名为 awaitPointerEventScope()。 (Idf0a1, b/175142755)
  • 用于创建 InfiniteRepeatableSpec 的新 infiniteRepeatable 函数 (I668e5)
  • 移除了 ExperimentalPointerInput 注解 (Ia7a24)

版本 1.0.0-alpha08

2020 年 12 月 2 日

androidx.compose.animation:animation:1.0.0-alpha08androidx.compose.animation:animation-core:1.0.0-alpha08 已发布。1.0.0-alpha08 版本包含以下提交。

API 变更

  • 添加了可组合 lambda 参数命名和位置的 lint 检查,以检查与 Compose 准则的一致性。根据 lint 检查和指导,还将一些使用 children 作为其尾随 lambda 名称的 API 迁移到 content。 (Iec48e)
  • 之前弃用的 API 已移除
    • Modifier.onPositioned 已移除,请改用 Modifier.onGloballyPositioned
    • Modifier.onDraw 已移除,请改用 Modifier.onDrawBehind
    • Modifier.plus 已移除,请改用 Modifier.then
    • Color.Unset 已移除,请改用 Color.Unspecified
    • PxBounds 类已移除,请改用 Rect
    • (Ie9d02, b/172562222)
  • 暂时添加了选项,允许 TestAnimationClock 由 MonotonicFrameClock 驱动。 (I1403b, b/173402197)

bug 修复

  • 将 Modifier.drawLayer 重命名为 Modifier.graphicsLayer。还根据 API 委员会的反馈,将相关类更新为 GraphicsLayer。 (I0bd29, b/173834241)
  • 添加了 Modifier.scale/rotate API 作为 drawLayer 的便利方法。
    • 将 Modifier.drawOpacity 重命名为 Modifier.alpha
    • 将 Modifier.drawShadow 重命名为 Modifier.shadow (I264ca, b/173208140)
  • 将 PointerInputData 的 uptime 和 position 字段设为非 null。 (Id468a)
  • offsetPx 修饰符已重命名为 offset。它们现在接受 lambda 参数而不是 State。 (Ic3021, b/173594846)
  • 用于在协程中运行动画的新 API (Ied662)
  • 弃用了以 Ambient 为后缀命名的 Ambients,并根据其他 Ambients 和 Compose API 准则,将其替换为以 Ambient 为前缀的新属性。 (I33440)
  • 测试中的时间控制(TestAnimationClock 及其用法)现在是实验性的 (I6ef86, b/171378521)
  • 移除了旧的 ui-test 模块及其存根 (I3a7cb)
  • RestorableStateHolder.withRestorableState 函数已重命名为 RestorableStateProvider (I66640)
  • Alignment 接口已更新并实现为函数式。 (I46a07, b/172311734)

版本 1.0.0-alpha07

2020 年 11 月 11 日

androidx.compose.animation:animation:1.0.0-alpha07androidx.compose.animation:animation-core:1.0.0-alpha07 已发布。1.0.0-alpha07 版本包含以下提交。

bug 修复

  • foundation AmbientTextStyle、ProvideTextStyle 和 AmbientContentColor 已弃用。请改用 Material 库中可用的新版本。对于非 Material 应用程序,您应该创建自己的设计系统特定的主题环境,以便在您自己的组件中使用。 (I74acc, b/172067770)
  • foundation.Text 已弃用并替换为 material.Text。对于不消费主题值的基本、无偏向文本 API,请参阅 androidx.compose.foundation.BasicText。 (If64cb)
  • MeasureResult 已移出 MeasureScope。 (Ibf96d, b/171184002)
  • 一些布局相关的符号已从 androidx.compose.ui 移至 androidx.compose.layout.ui。 (I0fa98, b/170475424)

版本 1.0.0-alpha06

2020 年 10 月 28 日

androidx.compose.animation:animation:1.0.0-alpha06androidx.compose.animation:animation-core:1.0.0-alpha06 已发布。1.0.0-alpha06 版本包含以下提交。

API 变更

  • 在 ComposeTestRule 中启用转换;从 ComposeTestRule 中移除启用闪烁光标的选项。 (If0de3)

版本 1.0.0-alpha05

2020 年 10 月 14 日

androidx.compose.animation:animation:1.0.0-alpha05androidx.compose.animation:animation-core:1.0.0-alpha05 已发布。1.0.0-alpha05 版本包含以下提交。

API 变更

  • 新的 Animation 接口和子类:这些类存储动画的开始和结束条件,因此只通过播放时间就可以查询值和速度 (Ie95bd, b/163329867)

bug 修复

  • OnPositionedModifier 已重命名为 OnGloballyPositionedModifier,onPositioned() 已重命名为 onGloballyPositioned()。 (I587e8, b/169083903)
  • 弃用了 contentColor() 和 currentTextStyle() API,分别用 AmbientContentColor 和 AmbientTextStyle 环境取代。您可以通过对环境属性使用 .current 来访问当前值,就像使用任何其他环境一样。此更改是为了保持一致性并避免有多种方法来完成相同的事情。此外,还重命名了一些环境属性,以更好地描述其用途,如下所示:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)

版本 1.0.0-alpha04

2020 年 10 月 1 日

androidx.compose.animation:animation:1.0.0-alpha04androidx.compose.animation:animation-core:1.0.0-alpha04 已发布。1.0.0-alpha04 版本包含以下提交。

API 变更

  • 使用 @VisibleForTesting 注解了 rootAnimationClockFactory、transitionsEnabled、blinkingCursorEnabled 和 textInputServiceFactory,使它们成为内部 API 并隐藏了它们的 kdoc (I554eb, b/168308412)

bug 修复

  • 更新了许多 Graphics API
    • 更新了缩放和旋转转换 API,使其在 DrawScope 和 DrawTransform 中使用单个 Offset 参数表示枢轴坐标,而不是使用独立的 x/y 坐标浮点参数
    • 移除了 Rect.expandToInclude 和 Rect.join 方法
    • 更新了 Radius 文档,在 elliptical 之外也提及 oval
    • 添加了文档,指示 inline Radius 类的公共构造函数不应直接调用,而应通过其函数构造函数实例化 Radius 对象
    • 移除了 RoundRect API,用于查询 topRight、bottomRight、bottomCenter 等
    • 弃用了 Rect.shift,改用 Rect.translate
    • 移除了 RoundRect.grow 和 Rect.shrink API
    • 将 RoundRect.outerRect 重命名为 Rect.boundingRect
    • 移除了 RoundRect.middleRect/tallMiddleRect/wideMiddleRect 和 Rect.isStadium 方法
    • 将 RoundRect.longestSide 重命名为 RoundRect.maxDimension
    • 将 RoundRect.shortestSide 重命名为 RoundRect.minDimension
    • 将 RoundRect.center 更改为属性而不是函数
    • 更新了 RoundRect 构造函数,使其消费 Radius 属性,而不是 x/y 半径值的单独参数
    • 为 Radius 添加了解构 API
    • 将各种 RoundRect 扩展函数迁移为属性
    • (I8f5c7, b/168762961)
    • foundation.Box 已弃用。请改用 foundation.layout.Box。 (Ie5950, b/167680279)
  • Stack 已重命名为 Box。之前存在的 Box 将被弃用,转而使用 compose.foundation.layout 中的新 Box。新的 Box 的行为是在有多个子项时将子项堆叠在一起——这与之前的 Box 不同,之前的 Box 的行为类似于 Column。 (I94893, b/167680279)
  • Box 装饰参数已弃用。如果您想在 Box 上添加装饰/填充,请改用 Modifier(Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • 盒子装饰参数已弃用。如果你想在盒子上添加装饰/内边距,请改用修饰符(Modifiers)(Modifier.backgroundModifier.borderModifier.padding) (Ibae92, b/167680279)
  • 我们阻止了布局作用域内容(例如 RowScope 中的 alignWithSiblings)的静态导入。请改用明确的作用域替代方案:with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }。 (I216be, b/166760797)

版本 1.0.0-alpha03

2020年9月16日

androidx.compose.animation:animation:1.0.0-alpha03androidx.compose.animation:animation-core:1.0.0-alpha03 已发布。 版本 1.0.0-alpha03 包含以下提交。

bug 修复

  • 布局 API 中 gravity 的用法已统一重命名为 alignalignment。 (I2421a, b/164077038)

版本 1.0.0-alpha02

2020年9月2日

androidx.compose.animation:animation:1.0.0-alpha02androidx.compose.animation:animation-core:1.0.0-alpha02 已发布。 版本 1.0.0-alpha02 包含以下提交。

API 变更

  • 添加了 ManualFrameClock.hasAwaiters 以检查是否有任何内容正在等待该时钟的帧;在运行需要 ManualFrameClock 的测试时,使用 runWithManualClock 替代 runBlocking;以及 TestUiDispatcher.Main,它可在您的测试中轻松访问主 UI 调度程序。

    例如

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    (I0a85b, b/161247083)

bug 修复

  • onPreCommit 已弃用;onCommit 现在具有 onPreCommit 的行为。

    onCommitonActive 现在在提交组合更改的同一协调器帧中运行,而不是在下一个协调器帧的开头运行。 (I70403)

版本 1.0.0-alpha01

2020年8月26日

androidx.compose.animation:animation:1.0.0-alpha01androidx.compose.animation:animation-core:1.0.0-alpha01 已发布。 版本 1.0.0-alpha01 包含以下提交。

版本 0.1.0-dev

版本 0.1.0-dev17

2020年8月19日

androidx.compose.animation:animation:0.1.0-dev17androidx.compose.animation:animation-core:0.1.0-dev17 已发布。 版本 0.1.0-dev17 包含以下提交。

新功能

API 变更

  • Offset 已成为内联类 (Iaec70)
  • IntOffset 现在是一个内联类 (Iac0bf)
  • IntSize 现在是一个内联类 (I2bf42)
  • AnimatedVisibilty 可组合项可为子内容提供显示和隐藏动画效果。

    引入了 EnterTransitionExitTransition,以便与 AnimatedVisibilty 可组合项配合使用,提供 3 种不同类型的显示和隐藏动画:淡入、滑动以及内容的展开/收缩。可以组合不同类型的动画以实现更具定制化的外观和感觉。 (Idda11)

  • 弃用了 PxBounds,转而使用 Rect。将 PxBounds 的所有用法更新为 rect,并添加了适当的弃用/替换注解以帮助迁移。 (I37038, b/162627058)

bug 修复

  • PlacementScope.placeAbsolute() 已重命名为 PlacementScope.place(),而之前的 PlacementScope.place() 已重命名为 PlacementScope.placeRelative()。因此,PlacementScope.place() 方法将不再在从右到左的上下文中自动镜像位置。如果需要此功能,请改用 PlacementScope.placeRelative()。 (I873ac, b/162916675)
  • state { ... } 可组合项现已弃用,为清晰起见,请明确调用 remember { mutableStateOf(...) }。这减少了整体 API 表面和状态管理的概念数量,并与类属性委托的 by mutableStateOf() 模式匹配。 (Ia5727)

版本 0.1.0-dev16

2020年8月5日

androidx.compose.animation:animation:0.1.0-dev16androidx.compose.animation:animation-core:0.1.0-dev16 已发布。 版本 0.1.0-dev16 包含以下提交。

API 变更

  • 内置的用于转换内置单位的向量转换器现在可以通过 Foo.VectorConverter 访问。例如 Dp.VectorConverterColor.VectorConverterFloat.VectorConverter 等 (I3e273)
  • Modifier.animateContentSize() 中支持结束监听器,以便在尺寸更改动画完成时,监听器会收到通知,并包含动画的起始/结束尺寸。 (I277b2)
  • 新的 animateContentSize 修饰符,可为其子修饰符的布局尺寸变化添加动画效果 (Ieffdc)
  • 添加了 MonotonicFrameAnimationClock,它允许您将 MonotonicFrameClock 用作 AnimationClockObservable,以弥合基于协程的新时钟与仍使用基于回调的旧时钟的 API 之间的差距。

    ManualAnimationClockMonotonicFrameClock 等价物现在是 ManualFrameClock。 (I111c7, b/161247083)

bug 修复

  • 已更新对从右到左语言支持的 API。已添加 LayoutDirectionAmbient,可用于读取和更改布局方向。已移除 Modifier.rtlModifier.ltr。 (I080b3)
  • transitionDefinition 要求显式指定类型 T。 (I1aded)
  • foundation.shape.corner 包已扁平化到 foundation.share (I46491, b/161887429)
  • Modifier.plus 已弃用,请改用 Modifier.then。'Then' 具有更强的排序信号,同时禁止键入 Modifier.padding().background() + anotherModifier,这会中断链条并使其更难阅读 (Iedd58, b/161529964)
  • Modifier.drawBackground 已重命名为 Modifier.background (I13677)

版本 0.1.0-dev15

2020年7月22日

androidx.compose.animation:animation:0.1.0-dev15androidx.compose.animation:animation-core:0.1.0-dev15 已发布。 版本 0.1.0-dev15 包含以下提交。

依赖项更新

  • 要使用 Compose 的 0.1.0-dev15 版本,您需要根据上方声明依赖项中显示的新代码片段来更新您的依赖项。

API 变更

  • Transition API 已更改为返回 TransitionState,而不是将 TransitionState 传递给子项。这使得 API 与 animate() API 更一致。 (I24e38)
  • Crossfade 添加了 Modifier 参数 (I87cfe, b/159706180)
  • 在顶级 API 中使用 AnimationSpec 而不是 AnimationBuilder,以阐明静态动画规范的概念
    • 通过移除创建 AnimationSpecs(如 tweenspring)的 lambda 要求来改进过渡 DSL。它们现在直接接受构造函数参数。
    • 通过开放构造函数而不是依赖构建器,提高 AnimationSpec 的整体易用性
    • KeyFramesTween 的持续时间和延迟更改为 Int。这消除了不必要的类型转换和方法重载(为了同时支持 LongInt)。 (Ica0b4)
  • IntPx 的用法替换为 Int。将 IntPxPosition 替换为 IntOffset。将 IntPxSize 替换为 IntSize。 (Ib7b44)
  • 为了整合用于表示尺寸信息的类数量,将标准化为使用 Size 类而不是 PxSize。这提供了内联类的好处,可以利用 long 类型打包 2 个浮点值来表示宽度和高度(以浮点数表示)。 (Ic0191)
  • 为了整合用于表示位置信息的类数量,将标准化为使用 Offset 类而不是 PxPosition。这提供了内联类的好处,可以利用 long 类型打包 2 个浮点值来表示 x 和 y 偏移量(以浮点数表示)。 (I3ad98)
  • 在各种 Compose 类中,将 Px 类的用法替换为仅依赖 Dp 和基本类型作为像素参数,这是大规模重构工作的一部分 (I086f4)
  • DpPxSizePositionBoundsPxPositionPxSizePxBoundsIntPxIntPxSizeIntPxPositionIntPxBoundsAnimationVector 添加了 animate() 支持 (Ib7518)
  • Crossfade 现在接受可选的 AnimationBuilder 参数以允许配置动画 (I6d6e0)
  • API 中所有可为空的 Color 用法已替换为不可为空,并使用 Color.Unset 而不是 null (Iabaa7)
  • 移除了 ValueHolder 类。重构了 AnimatedValueAnimatedFloat 类,使动画值字段抽象化,以便子类可以观察值的更新。
    • AnimatedValueAnimatedFloat 等添加了模型类。
    • 添加了一组新的轻量级 @Composable API,用于在值之间进行动画处理。 (I79530)
  • ambients API 的重大更改。有关详细信息,请参阅日志和 Ambient<T> 文档 (I4c7ee, b/143769776)
  • 新的重复模式:Reverse。此模式在 RepeatableSpecVectorizedRepeatableSpec 中重复动画时会反转上一个迭代。 (Ibe0f5)
  • ManualAnimationClock 的 API 增强:hasObservers: Boolean 和构造函数参数 dispatchOnSubscribe: Boolean (Iaa134)
  • 添加了在 AnimatedFloat 中获取最小/最大边界的 API (Icd9cc)

bug 修复

  • runOnIdleCompose 已重命名为 runOnIdle (I83607)
  • 一些测试 API 已重命名,以使其更直观。所有 findXYZ API 已重命名为 onNodeXYZ。所有 doXYZ API 已重命名为 performXYZ。 (I7f164)
  • 引入了低级无状态动画 API。这些 API (I63bf7)
  • Recompose 可组合项不再是一个有用的抽象。大多数重组应该作为 MutableState 赋值的结果而发生。除此之外,建议您使用 invalidate 函数来触发当前作用域的重组。 (Ifc992)
  • 在各种 Compose 类中,将 Px 类的用法替换为仅依赖 Dp 和基本类型作为像素参数,这是大规模重构工作的一部分。完全删除了 Px 类 (I3ff33)
  • 在各种 Compose 类中,将 Px 类的用法替换为仅依赖 Dp 和基本类型作为像素参数,这是大规模重构工作的一部分 (Id3434)
  • Crossfade 现在可以将 null 作为初始值使用 (Iad6a4, b/155947711)
  • 在各种 Compose 类中,将 Px 类的用法替换为仅依赖 Dp 和基本类型作为像素参数,这是大规模重构工作的一部分 (I19d02)
  • 整合了 CanvasScope 实现,现在只剩下 DrawScopeContentDrawScopeCanvasScope 重命名为 DrawScope。更新了 DrawScope 以实现 Density 接口并提供 LayoutDirection 删除了 ContentDrawScope 中的 DrawScope 子类。 PainterPainterModifier 已更新,不再自行维护 RTL 属性,因为 DrawScope 已自动提供此功能,无需手动提供 (I1798e)
  • 更新了公开 Canvas 的更高级别 Compose API,改为公开 CanvasScope。这消除了消费者维护自己的 Paint 对象的需要。对于仍需要访问 Canvas 的消费者,他们可以使用 drawCanvas 扩展方法,该方法提供回调以使用底层 Canvas 发出绘图命令。 (I80afd)
  • 分别为 RowColumn 添加了 verticalGravityhorizontalGravity 参数。 (I7dc5a)
  • ui-text 模块已重命名为 ui-text-core (I57dec)
  • 改进 DrawModifier API
    • draw() 的接收者作用域设为 ContentDrawScope
    • 移除了 draw() 上的所有参数
    • DrawScope 具有与前 CanvasScope 相同的接口
    • ContentDrawScope 具有 drawContent() 方法 (Ibaced, b/152919067)
  • runOnIdleComposerunOnUiThread 现在是全局函数,而不是 ComposeTestRule 上的方法。 (Icbe8f)
  • [Mutable]State 属性委托运算符已移至扩展函数,以支持 Kotlin 1.4 属性委托优化。调用者必须添加导入才能继续使用 by state { ... }by mutableStateOf(...)。 (I5312c)
  • ColoredRect 已弃用。请改用 Box(Modifier.preferredSize(width, height).drawBackground(color))。 (I499fa, b/152753731)
  • Modifier 的加号运算符替换为工厂扩展函数 (I225e4)
  • 弃用了 Center 可组合项。应将其替换为 LayoutSize.Fill + LayoutAlign.Center 修饰符,或替换为应用了适当修饰符的 BoxStack 可组合项之一 (Idf5e0)
  • LayoutFlexible 重命名为 LayoutWeight。将 tight 参数重命名为 fill。 (If4738)
  • Opacity 可组合函数已替换为 drawOpacity 修饰符。 (I5fb62)
  • 使用 AndroidComposeTestRule 的测试现在在组合的根部提供一个动画时钟,允许手动暂停、恢复和推进。 (Id54c5)
  • LayoutPadding 修饰符支持从右到左的方向 (I9e8da)
  • DensityDensityScope 已合并为一个接口。现在可以使用 DensityAmbient.current 代替 ambientDensity()。可以使用 with(density) 代替 withDensity(density) (I11cb1)
  • 为各种内联类类型添加了 copy 方法,包括
    • Offset
    • Size
    • Radius
    • Motion
    • TransformOrigin
    • 弃用了 Size.copy 伴生对象方法,转而使用实例 copy 方法 (Ife290, b/159905651)
  • androidx.compose.ViewComposer 已移至 androidx.ui.node.UiComposerandroidx.compose.Emittable 已移除。它与 ComponentNode 重复。androidx.compose.ViewAdapters 已移除。它们不再是受支持的用例。Compose.composeInto 已弃用。请改用 setContentsetViewContentCompose.disposeComposition 已弃用。请改用 setContent 返回的 Composition 上的 dispose 方法。androidx.compose.Compose.subcomposeInto 已移至 androidx.ui.core.subcomposeIntoComponentNode#emitInsertAt 已重命名为 ComponentNode#insertAtComponentNode#emitRemoveAt 已重命名为 ComponentNode#removeAtComponentNode#emitMode 已重命名为 ComponentNode#move (Idef00)