Compose 动画

在他们的 Jetpack Compose 应用中构建动画以丰富用户体验。
最新更新 稳定版 候选版本 Beta 版 Alpha 版
2024 年 11 月 13 日 1.7.5 - - 1.8.0-alpha06

结构

Compose 是 androidx 中 7 个 Maven 组 ID 的组合。每个组包含一个目标功能子集,每个子集都有自己的一组发行说明。

此表解释了这些组并链接到每一组发行说明。

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

声明依赖项

要添加对 Compose 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读Google 的 Maven 存储库以了解更多信息。

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

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

反馈

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

创建新问题

请参阅问题跟踪器文档以获取更多信息。

版本 1.8

版本 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 现在支持预读。这包括在滚动、项目组合/释放和项目动画中区分预读阶段与接近阶段,并使用预读阶段作为滚动和项目动画目标的真相来源。

错误修复

  • 在重新创建转换时更新 AnimatedContent 的大小转换的内部状态。这确保目标大小信息始终是最新的。(b/372512085

版本 1.8.0-alpha04

2024 年 10 月 16 日

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

错误修复

  • 修复了一个导致某些缓动曲线在特定时间分数处崩溃的错误。
  • 修复了一个导致在 RTL 下 Modifier.animateContentSize 对齐不正确的错误。(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

错误修复

  • 修复了 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 更改

  • 移除带有弧线和样条线的关键帧上的实验性标志 (89e1199)

错误修复

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

外部贡献

  • 由 Steven Schoen 防止在没有运行转换时设置可搜索转换 playTime。(c2e6e7e6

版本 1.7

版本 1.7.5

2024 年 10 月 30 日

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

错误修复

  • 修复了一个导致在 RTL 下 Modifier.animateContentSize 对齐不正确的错误。(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
  • 新的 resizeModesScaleToBoundsRemeasureToBounds)用于 sharedBounds 以在缩放和重新测量之间进行选择。以前的 scaleIn/OutSharedContentToBounds API 现已弃用。(I0d41a

对现有 API 的改进

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

以下 API 已成为稳定 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 包含这些提交

错误修复

  • 修复了 SharedTransitionScope 在某些情况下(通常包括与 Navigation 一起使用的情况)在转换过程中不绘制叠加层项目的问题。(Id65abb/347520198

版本 1.7.0-beta06

2024 年 7 月 24 日

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

错误修复

  • 修复了 SeekableTransition 通过在释放转换时正确清理 SnapshotStateObserver 的观察来防止转换状态泄漏。(b9c7182
  • 修复了在父级完成时子转换未正确标记为已完成的极端情况。(dc42216

版本 1.7.0-beta05

2024 年 7 月 10 日

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

错误修复

  • 转换属性 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 更改

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

外部贡献

  • 实验性的 SharedTransitionScope 现在是一个接口而不是一个类,由 Steven Schoen 实现。(Iaf856b/338415048b/338414702)

版本 1.7.0-alpha08

2024 年 5 月 1 日

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

API 更改

  • LookaheadScope API 已稳定。(I21507

外部贡献

  • SeekableTransitionState 动画/捕捉后清除动画开始时间,由 Steven Schoen 实现 (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

错误修复

  • 修复了之前会被限制在 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)

错误修复

  • 改进了 updateTransition API 的性能。

版本 1.7.0-alpha05

2024 年 3 月 20 日

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

API 更改

  • SeekableTransitionState 使用 seekTo() 替换 snapTo(),并添加了一个 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 包含这些提交。

错误修复

  • 针对 KeyframesSpec 的兼容性修复。(I2bdf3b/322214617)
  • 修复了在 LazyList 中使用时 Modifier.animateContentSize 未正确重置的问题。(I070512b/322525716)
  • 修复了在 KeyframesSpec 中使用超出范围的时间戳时发生的 IllegalStateException。(I341b8b/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 包含这些提交。

错误修复

版本 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,因为它们需要前瞻性。当将来版本中默认启用或选择加入前瞻性时,它们将可用。

版本 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 添加。

错误修复

  • ArcLine 中添加对扫描渐变的渲染器支持。(I4d5bb)
  • PageSize.Fixed 实现 equals 和 hashcode。(Ie3edeb/300134276)
  • 修复了与窗口插入更改相关的二进制兼容性问题。(Iee695)
  • 删除 Material3 芯片/按钮的材料核心层,因为微基准测试显示没有它性能更好。(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 更改

  • 修复并可滚动标签栏现在具有主和次要变体。这些正确地映射到 Material3 中定义的颜色和指示器行为。
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 现在公开了滚动状态。(Iec8f5b/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

错误修复

  • 从弹簧动画中删除了分配。(Ie9431
  • Enum.valueOf 的值参数名称已更改(Ia9b89
  • 枚举 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 包含以下提交。

错误修复

  • 修复了当 readOnly 为 true 时,文本字段显示键盘并可编辑的问题。还修复了当 readOnly 从 true 更改为 false 且处于焦点状态时,键盘不显示的问题。(I34a19b/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 包含以下提交。

错误修复

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

错误修复

  • 从弹簧动画中删除了分配(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 包含以下提交。

新功能

  • SubcomposeLayoutLookaheadScope 中的新默认行为。它允许没有条件插槽的 SubcomposeLayouts(例如 TabRowScaffoldBoxWithConstraints 等)与预读动画很好地配合使用。

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 以来重要更改

  • 工具标签受 rememberInfiniteTransitionInfiniteTransition 和 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 包含以下提交。

新功能

  • 工具标签已在 rememberInfiniteTransitionInfiniteTransitionTransition 上的所有扩展函数(例如 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 的代码,并且在传递给这些函数的回调之外具有逻辑的代码可能需要移动到回调内部。请参阅 此 CL 中的动画测试更改以获取示例
  • TestMonotonicFrameClock 构造函数和工厂函数添加了可选的 onPerformTraversals: (Long) -> Unit 参数,以便在 withFrameNanos 回调之后但在恢复调用者的协程之前运行代码。(Idb413b/254115946b/222093277b/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 包含以下提交。

错误修复

  • 修复 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 包含以下提交。

错误修复

  • 更新以支持 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 函数,用于根据分数而不是特定持续时间定义关键帧。(I20c76b/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 包含以下提交。

错误修复

  • 已移除缓动函数上的 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 的内容。(I79cd9b/185760237)

错误修复

  • 更新了矢量图形 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 动画现在支持开发者选项中的“动画时长缩放”设置。(I5a4fcb/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)

错误修复

  • 为 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 包含以下提交。

错误修复

版本 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 辅助功能指南 中关于 触摸目标大小 的要求。例如,即使您将按钮的大小设置为更小,按钮的触摸目标也将扩展到最小 48x48dp 的大小。这使 Compose Material 与 Material Design Components 具有相同的行为,如果混合使用 View 和 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 包含以下提交。

错误修复

  • 更新以支持 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 来实现自定义状态差异。(I558fd

    ContentKey 也将用作保存和恢复内容的键。(I2e055b/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 版本包含以下提交。

错误修复

  • 用于支持工具的新动画 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,作为延迟开始时间或在动画开始前快进动画的一种方式。此开始偏移不会重复。(Ic679fb/195079908
  • 用于缩放的新 Enter/Exit 过渡。它可以与其他类型的 Enter/ExitTransitions 结合使用。(I372dab/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

错误修复

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 版本包含以下提交。

错误修复

  • 修复了跟踪派生 StateOf 实例的崩溃。(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)"
    

    要修复此问题,请在您的 build.gradle 文件中临时将 minSdkVersion 提高到 24+。此问题将在 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 版本包含以下提交。

错误修复

  • InfiniteAnimationPolicy 移至 androidx.compose.ui:uiI5eb09b/160602714

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 可组合项。它使用可自定义的 ContentTransform 管理其内容更改,因为新目标内容进入而初始内容离开。可以结合使用不同的进入和退出转换以产生自定义的外观和感觉。作为内容转换的一部分,AnimatedContent 会自动对其大小进行动画处理以匹配传入的内容。(I2c3df
  • 已移除 ManualFrameClock。如果您需要控制动画,请改用 composeTestRule.mainClock。(I3c3e8b/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

什么是配置文件规则?

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

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

    <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 包含这些提交。

错误修复

  • 现在 detectDragGesuresdetectVerticalGesturesdetectHorizontalGestures 将自动使用位置更改,无需在 onDrag 回调中调用 change.consumePositionChange(I42fc4b/185096350b/187320697
  • Modifier.onGloballyPositioned() 已更改为报告修饰符链中此修饰符的坐标,而不是应用所有修饰符后的布局坐标。这意味着现在修饰符的顺序会影响报告的坐标。(Ieb67db/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 中自定义退出/进入转换动画
    • 新增 animateEnterExit 修饰符,可用于 AnimatedVisibility 的所有子级
    • 已弃用采用 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 包含这些提交。

错误修复

  • 来自 ui-test-manifest 和 ui-tooling-data 的 AndroidManifest 文件现在与 Android 12 兼容(I6f9deb/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 的公共实例。(I4e83eb/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 包含这些提交。

错误修复

版本 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 文档和示例。
    • I85965b/152525426b/171913923b/171710801b/174852378
  • smoothScrollBy 和 scrollBy 方法的包已更改为 androidx.compose.foundation.gestures.*I3f7c1b/175294473
  • 大小修饰符已重命名。Modifier.width/height/size 已重命名为 requiredWidth/requiredHeight/requiredSize。Modifier.preferredWidth/preferredHeight/preferredSize 已重命名为 width/height/size。(I5b414
  • Orientation 已移至 foundation 包。VelocirtTracker 已从 ui.gesture 移至 ui.input.pointer。(Iff4a8b/175294473
  • AnimationClockObservable 及其子类已移除。AnimatedFloat 已移除。(Icde52b/177457083
  • Modifier.draggable 现在接受 DraggableState 而不是简单的 lambda。您可以通过 rememberDraggableState { delta -> } 创建状态以获得与之前相同的行为(Ica70fb/175294473
  • animate、animatedValue、AnimatedValue API 已移除(If27bcb/177457083
  • AnimationEndReason.Interrupted 已移除。如果动画被中断,将抛出 CancellationException。(I2cbbcb/179695417
  • TargetAnimation API 已移除。(If47d1b/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 现在是挂起函数 (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 和子动画添加了一个标签字段,以便在工具中显示 (I619fb)
  • animateAsState 现在是 animateFooAsState,其中 Foo 是正在动画化的变量的类型。例如 Float、Dp、Offset 等 (Ie7e25)
  • 新的 InfiniteTransition 可以运行任意数量的子动画。 (I1da81)
  • 更改 Material 有状态参数接口,使其具有返回 State<T> 的 @Composable 函数。添加 Animatable.asState() 以便更容易地将 Animatable 转换为 State。还将 animateElevation 更改为 Animatable 上的挂起扩展函数。 (If613c)

错误修复

  • onCommit、onDispose 和 onActive 已弃用,取而代之的是 SideEffect 和 DisposableEffect API (If760e)
  • 现在支持 updateTransition 中的初始状态 (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)

错误修复

  • 新的基于协程的 API Animatable,它确保其动画之间的互斥性。新的 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 使用起来更加简单,并支持动态添加动画和动态计算动画目标。这些 API 被标记为实验性的,以便与基于 TransitionDefinition 的 API 区分。 (Ia7fe3)

错误修复

  • 偏移修饰符中的 Lambda 现在返回 IntOffset 而不是 Float。 (Ic9ee5, b/174137212, b/174146755)
  • 弃用 LazyColumnFor、LazyRowFor、LazyColumnForIndexed 和 LazyRowForIndexed。请改用 LazyColumn 和 LazyRow (I5b48c)
  • 对于挂起指针输入 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
    • Ie9d02b/172562222
  • 临时添加了一个选项,允许 TestAnimationClock 由 MonotonicFrameClock 驱动(I1403bb/173402197

错误修复

  • 根据 API 委员会的反馈,将 Modifier.drawLayer 重命名为 Modifier.graphicsLayer,并更新了相关类到 GraphicsLayer。(I0bd29b/173834241
  • 添加了 Modifier.scale/rotate API 作为 drawLayer 的便利功能。
    • 将 Modifier.drawOpacity 重命名为 Modifier.alpha。
    • 将 Modifier.drawShadow 重命名为 Modifier.shadow(I264cab/173208140
  • 使 PointerInputData 的 uptime 和 position 字段不可为空。(Id468a
  • offsetPx 修饰符已重命名为 offset。它们现在接受 Lambda 参数而不是 State。(Ic3021b/173594846
  • 用于在协程中运行动画的新 API(Ied662
  • 弃用以 Ambient 作为后缀命名的环境变量,并用以 Ambient 为前缀的新属性替换它们,遵循其他环境变量和 Compose API 指南。(I33440
  • 测试中的时间控制(TestAnimationClock 及其用法)现已成为实验性功能(I6ef86b/171378521
  • 删除旧的 ui-test 模块及其存根(I3a7cb
  • RestorableStateHolder.withRestorableState 函数已重命名为 RestorableStateProviderI66640
  • Alignment 接口已更新并使其成为函数式接口。(I46a07b/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 包含这些提交。

错误修复

  • 基础 AmbientTextStyle、ProvideTextStyle 和 AmbientContentColor 已弃用。请改用 Material 库中提供的新版本。对于非 Material 应用程序,您应该创建自己的设计系统特定主题环境变量,这些变量可以在您自己的组件中使用。(I74accb/172067770
  • foundation.Text 已弃用,并替换为 material.Text。对于不使用主题值的基本、不带意见的文本 API,请参阅 androidx.compose.foundation.BasicText。(If64cb
  • MeasureResult 已从 MeasureScope 中移出。(Ibf96db/171184002
  • 一些与布局相关的符号已从 androidx.compose.ui 移动到 androidx.compose.layout.ui。(I0fa98b/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 接口和子类:这些类存储动画的起始和结束条件,因此仅通过播放时间即可查询值和速度(Ie95bdb/163329867

错误修复

  • OnPositionedModifier 已重命名为 OnGloballyPositionedModifier,onPositioned() 已重命名为 onGloballyPositioned()。(I587e8b/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(I554ebb/168308412

错误修复

  • 更新了许多图形 API。
    • 更新了缩放和旋转转换 API,以使用单个 Offset 参数来表示枢轴坐标,而不是在 DrawScope 和 DrawTransform 中分别使用浮点数参数表示 x/y 坐标。
    • 删除了 Rect.expandToInclude 和 Rect.join 方法。
    • 更新了 Radius 文档,除了椭圆形之外还说卵形。
    • 添加了文档,指示不应直接调用内联 Radius 类的公共构造函数,而应通过其函数构造函数实例化 Radius 对象。
    • 删除了用于查询 topRight、bottomRight、bottomCenter 等的 RoundRect API。
    • 弃用 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 半径值的单个参数。
    • 删除了假设其原点为 0,0 的矩形的 Size API。
    • 向 Radius 添加了解构 API。
    • 将各种 RoundRect 扩展函数迁移为属性。
    • I8f5c7b/168762961
  • foundation.Box 已弃用。请改用 foundation.layout.Box。(Ie5950b/167680279
  • Stack 已重命名为 Box。先前存在的 Box 将被弃用,取而代之的是 compose.foundation.layout 中的新 Box。新 Box 的行为是在它有多个子项时将子项一个叠放在另一个之上 - 这与之前的 Box 不同,之前的 Box 的行为类似于 Column。(I94893b/167680279
  • Box 装饰参数已弃用。如果您想在您的框上添加装饰/填充,请改用修饰符(Modifier.background、Modifier.border、Modifier.padding)(Ibae92b/167680279
  • 我们阻止了布局作用域内容的静态导入(例如 RowScope 中的 alignWithSiblings)。应改用显式作用域替代方案:with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }。(I216beb/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 包含这些提交。

错误修复

  • 布局 API 中 gravity 的用法已一致重命名为 align 或 alignment。(I2421ab/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 以查看是否有任何内容正在等待该时钟的帧;runWithManualClock 作为 runBlocking 的替代方法,用于运行需要 ManualFrameClock 的测试;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")
        }
    }
    

    I0a85bb/161247083

错误修复

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

    onCommit 和 onActive 现在在与组合更改提交相同的协调器帧中运行,而不是在下一个协调器帧的开头运行。(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 可组合项会为子内容的出现和消失设置动画。

    引入了 EnterTransition 和 ExitTransition 以配合 AnimatedVisibilty 可组合项,提供 3 种不同的外观和消失动画类型:淡入淡出、滑动以及内容的展开/收缩。可以组合不同类型的动画,以实现更定制化的外观和感觉。(Idda11

  • 弃用 PxBounds,转而使用 Rect。使用 rect 更新了所有 PxBounds 的用法,并添加了适当的弃用/替换注释以协助迁移。(I37038b/162627058

错误修复

  • PlacementScope.placeAbsolute() 已重命名为 PlacementScope.place(),之前的 PlacementScope.place() 已重命名为 PlacementScope.placeRelative()。因此,PlacementScope.place() 方法将不再自动在从右到左的上下文中镜像位置。如果需要此功能,请改用 PlacementScope.placeRelative()。(I873acb/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 之间的差距。

    MonotonicFrameClock 的等效项 ManualAnimationClock 现在是 ManualFrameClock。(I111c7b/161247083

错误修复

  • 已更新从右到左支持的 API。已添加 LayoutDirectionAmbient,可用于读取和更改布局方向。已删除 Modifier.rtl 和 Modifier.ltr。(I080b3
  • 要求为 transitionDefinition 明确指定类型 T。(I1aded
  • foundation.shape.corner 包已扁平化为 foundation.share(I46491b/161887429
  • Modifier.plus 已弃用,请改用 Modifier.then。“Then” 对排序有更强的指示作用,同时也禁止键入 Modifier.padding().background() + anotherModifier,这会破坏链并难以阅读(Iedd58b/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 参数(I87cfeb/159706180
  • 在顶级 API 中使用 AnimationSpec 而不是 AnimationBuilder,以阐明静态动画规范的概念
    • 通过删除创建 AnimationSpec(如 tween、spring)的 lambda 要求来改进转换 DSL。它们改为直接使用构造函数参数。
    • 提高 AnimationSpec 的整体易用性,开放构造函数而不是依赖于构建器
    • 将 KeyFrames 和 Tween 的持续时间和延迟更改为 Int。这消除了不必要的类型转换和方法重载(用于支持 Long 和 Int)。(Ica0b4
  • 将 IntPx 的用法替换为 Int。将 IntPxPosition 替换为 IntOffset。将 IntPxSize 替换为 IntSize。(Ib7b44
  • 为了整合用于表示大小信息的类的数量,标准化使用 Size 类而不是 PxSize。这提供了内联类的优势,可以利用 long 打包 2 个 float 值来表示以 float 表示的宽度和高度。(Ic0191
  • 为了整合用于表示定位信息的类的数量,标准化使用 Offset 类而不是 PxPosition。这提供了内联类的优势,可以利用 long 打包 2 个 float 值来表示以 float 表示的 x 和 y 偏移量。(I3ad98
  • 在各种 compose 类中替换了 Px 类的用法,作为仅依赖于 Dp 和基本类型进行像素参数的大规模重构工作的一部分(I086f4
  • 添加了对 Dp、Px、Size、Position、Bounds、PxPosition、PxSize、PxBounds、IntPx、IntPxSize、IntPxPosition、IntPxBounds 和 AnimationVector 的 animate() 支持(Ib7518
  • Crossfade 现在接受可选的 AnimationBuilder 参数以允许配置动画(I6d6e0
  • 将 API 中所有可为空的 Color 用法替换为不可为空的用法,并使用 Color.Unset 而不是 null(Iabaa7
  • 删除了 ValueHolder 类。重新构造了 AnimatedValue、AnimatedFloat 类,使动画值字段成为抽象的,以便子类可以监视值更新。
    • 为 AnimatedValue、AnimatedFloat 等添加了模型类。
    • 添加了一套新的轻量级 @Composable API,用于在值之间设置动画。(I79530
  • 对环境变量 API 的重大更改。有关详细信息,请参阅日志和 Ambient<T> 文档(I4c7eeb/143769776
  • 新的重复模式:Reverse。此模式在 RepeatableSpec 或 VectorizedRepeatableSpec 中重复动画时会反转上一次迭代。(Ibe0f5
  • 对 ManualAnimationClock 添加了 API:hasObservers: Boolean 和构造函数参数 dispatchOnSubscribe: BooleanIaa134
  • 添加了用于在 AnimatedFloat 中获取最小/最大边界的 API(Icd9cc

错误修复

  • runOnIdleCompose 已重命名为 runOnIdleI83607
  • 几个测试 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 作为初始值(Iad6a4b/155947711
  • 在各种 compose 类中替换了 Px 类的用法,作为仅依赖于 Dp 和基本类型进行像素参数的大规模重构工作的一部分(I19d02
  • 整合了 CanvasScope 实现,因此现在只有 DrawScope 和 ContentDrawScope 将 CanvasScope 重命名为 DrawScope。更新 DrawScope 以实现 Density 接口并提供 LayoutDirection 删除 ContentDrawScope 中的 DrawScope 子类 Painter 和 PainterModifier 已更新,不再自行维护 RTL 属性,因为 DrawScope 已在不手动提供的情况下提供了此属性(I1798e
  • 更新了公开 Canvas 的更高级别的 compose API 以公开 CanvasScope。这消除了使用者维护自己的 Paint 对象的需要。对于仍然需要访问 Canvas 的使用者,他们可以使用 drawCanvas 扩展方法,该方法提供回调以使用底层 Canvas 发出绘图命令。(I80afd
  • 分别向 Row 和 Column 添加了 verticalGravity 和 horizontalGravity 参数。(I7dc5a
  • ui-text 模块已重命名为 ui-text-core(I57dec
  • 改进 DrawModifier API
    • 使 draw() 的接收器范围成为 ContentDrawScope
    • 删除了 draw() 上的所有参数
    • DrawScope 与以前的 CanvasScope 具有相同的接口
    • ContentDrawScope 具有 drawContent() 方法(Ibacedb/152919067

  • runOnIdleComposerunOnUiThread 现在是全局函数,而不是 ComposeTestRule 上的方法。(Icbe8f)
  • [可变]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 修饰符,或替换为应用了适当修饰符的 Box 或 Stack 可组合函数之一 (Idf5e0)
  • 将 LayoutFlexible 重命名为 LayoutWeight。将 tight 参数重命名为 fill。(If4738)
  • Opacity 可组合函数已被 drawOpacity 修饰符替换。(I5fb62)
  • 使用 AndroidComposeTestRule 的测试现在在组合的根部提供一个动画时钟,允许手动暂停、恢复和推进它。(Id54c5)
  • 在 LayoutPadding 修饰符中支持从右到左的方向 (I9e8da)
  • Density 和 DensityScope 已合并为一个接口。现在可以使用 DensityAmbient.current 而不是 ambientDensity()。使用 with(density) 而不是 withDensity(density) (I11cb1)
  • 向各种内联类类型添加了复制方法,包括
    • Offset
    • Size
    • Radius
    • Motion
    • TransformOrigin
    • 已弃用 Size.copy 伴侣对象方法,有利于实例复制方法 (Ife290, b/159905651)
  • androidx.compose.ViewComposer 已移至 androidx.ui.node.UiComposer androidx.compose.Emittable 已删除。它与 ComponentNode 重复。androidx.compose.ViewAdapters 已删除。它们不再是受支持的用例。Compose.composeInto 已弃用。请改用 setContentsetViewContent。Compose.disposeComposition 已弃用。请改用 setContent 返回的 Composition 上的 dispose 方法。androidx.compose.Compose.subcomposeInto 已移至 androidx.ui.core.subcomposeInto ComponentNode#emitInsertAt 已重命名为 ComponentNode#insertAt ComponentNode#emitRemoveAt 已重命名为 ComponentNode#removeAt ComponentNode#emitMode 已重命名为 ComponentNode#move (Idef00)