Compose 动画
androidx.compose.animation
androidx.compose.animation.core
androidx.compose.animation.graphics
(请参阅所有 Compose 包的 API 参考文档)
最新更新 | 稳定版 | 候选版本 | 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.runtime | Compose 编程模型和状态管理的基本构建块,以及 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 的一致性。(I5694c,b/375351468) AnimatedImageVector
API 集现已稳定。(I7174b,b/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
对齐不正确的错误。(Idae6b,b/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
对齐不正确的错误。(Idae6b,b/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)
- 新的
scaleInSharedContentToBounds
和scaleOutSharedContentToBounds
用于在sharedBounds
中缩放内容 (I731c1) - 实验性的
SharedTransitionScope
现在是接口而不是类。(Iaf856) - 新的
resizeModes
(ScaleToBounds
和RemeasureToBounds
)用于sharedBounds
以在缩放和重新测量之间进行选择。以前的scaleIn/OutSharedContentToBounds
API 现已弃用。(I0d41a)
对现有 API 的改进
- 新的
Modifier.animateContentSize
,它接受一个用于自定义内容对齐的附加参数。(I5623a,b/269803907) - 新的实验性
DeferredTargetAnimation
用于设置大小、位置或在实例化期间未知的任何其他目标的动画。(I60745) SeekableTransitionState
使用seekTo()
替换snapTo()
,并添加了一个snapTo()
,它会立即将状态更改为目标状态,而无需任何动画。- 您现在可以将
periodicBias
值(浮点数)传递给keyframesWithSpline
,这将使样条线的初始和最终速度相等。对于使用样条线的可重复动画很有用。偏差指示每个速度(初始和最终)为实现周期性而修改的程度。(Ic1e6c,b/292114811)
以下 API 已成为稳定 API 或已移除
AnimatedVisibilityScope.transition
现在是稳定 API。Modifier.animateEnterExit(..)
也已稳定。(I6c1d1)ApproachLayoutModifierNode
和Modifier.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 一起使用的情况)在转换过程中不绘制叠加层项目的问题。(Id65ab,b/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 更改
- 新的
resizeModes
(ScaleToBounds
和RemeasureToBounds
)用于sharedBounds
以在缩放和重新测量之间进行选择。以前的scaleIn/OutSharedContentToBounds
API 现已弃用。(I0d41a)
外部贡献
- 实验性的
SharedTransitionScope
现在是一个接口而不是一个类,由 Steven Schoen 实现。(Iaf856,b/338415048,b/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)
- 新的
scaleInSharedContentToBounds
和scaleOutSharedContentToBounds
用于在sharedBounds
中缩放内容 (I731c1)
API 更改
AnimatedVisibilityScope.transition
现在是稳定 API。Modifier.animateEnterExit(..)
也已稳定。(I6c1d1)ApproachLayoutModifierNode
和Modifier.approachLayout
现在是稳定的,并使用新的isMeasurementApproachInProgress()
和isPlacementApproachInProgress()
分别替换旧的isMeasurementApproachComplete()
和isPlacementApproachComplete()
。- 已移除弃用的
intermediateLayout
修饰符。(I3e91c) - 您现在可以将
periodicBias
值(浮点数)传递给keyframesWithSpline
,这将使样条线的初始和最终速度相等。对于使用样条线的可重复动画很有用。偏差指示每个速度(初始和最终)为实现周期性而修改的程度。(Ic1e6c,b/292114811)
错误修复
- 修复了之前会被限制在 0..1 之间的过度和不足缓动曲线 (I38747)
版本 1.7.0-alpha06
2024 年 4 月 3 日
androidx.compose.animation:animation-*:1.7.0-alpha06
已发布。版本 1.7.0-alpha06 包含 这些提交。
新功能
- 项目出现和消失动画支持已添加到
LazyColumn
和LazyRow
中。之前可以通过添加Modifier.animateItemPlacement()
修饰符来支持放置(重新排序)动画。我们弃用了此修饰符并引入了一个新的非实验性修饰符,称为Modifier.animateItem()
,它允许您支持所有三种动画类型:出现(淡入)、消失(淡出)和重新排序。(I2d7f7,b/330152398,b/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
,它接受一个用于自定义内容对齐的附加参数。(I5623a,b/269803907) - 新的实验性
DeferredTargetAnimation
用于设置大小、位置或在实例化期间未知的任何其他目标的动画。(I60745)
版本 1.7.0-alpha02
2024 年 2 月 7 日
androidx.compose.animation:animation-*:1.7.0-alpha02
已发布。 版本 1.7.0-alpha02 包含这些提交。
错误修复
- 针对
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 包含这些提交。
错误修复
- 针对
KeyframesSpec
的兼容性修复。(I2bdf3,b/322214617)
版本 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
中删除了scaleInToFitContainer
和scaleOutToFitContainer
,因为它们需要前瞻性。当将来版本中默认启用或选择加入前瞻性时,它们将可用。
版本 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 维值。它对插值位置值(如Offset
、IntOffset
、DpOffset
)特别有用。作为实验性 API 添加。
错误修复
- 在
ArcLine
中添加对扫描渐变的渲染器支持。(I4d5bb) - 为
PageSize.Fixed
实现 equals 和 hashcode。(Ie3ede,b/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 中定义的颜色和指示器行为。
PrimaryScrollableTabRow
和SecondaryScrollableTabRow
现在公开了滚动状态。(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 更改
版本 1.6.0-alpha01
2023年6月21日
androidx.compose.animation:animation-*:1.6.0-alpha01
已发布。版本 1.6.0-alpha01 包含以下提交。
新功能
- 启用
Modifier.animateContentSize
和AnimatedVisibility
以完全集成到预读系统中,方法是在预读阶段报告目标大小。
API 更改
- 在
IntrinsincMeasureScope
及其实现(例如MeasureScope
)中添加了一个新属性,用于指示当前测量阶段是否为预读阶段。(I7a812)
错误修复
版本 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 且处于焦点状态时,键盘不显示的问题。(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 包含以下提交。
错误修复
修复了在基本状态类型(如
MutableIntState
)上调用.value
会报告带有无效修复的 lint 警告的问题。现在,检查将建议迁移到正确的属性。(Iba953,b/287279257)提供了一个可选的检查,建议将
mutableStateOf()
调用迁移到其对应于基本类型的专用类型。其 lint ID 为AutoboxingStateCreation
。以前,此检查默认对所有项目启用。要在 Android Studio 的编辑器和项目的 lint 输出中查看此警告,请将其严重性从信息更改为警告(或更高),方法是在模块的build.gradle
或build.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 包含以下提交。
新功能
SubcomposeLayout
在LookaheadScope
中的新默认行为。它允许没有条件插槽的SubcomposeLayouts
(例如TabRow
、Scaffold
、BoxWithConstraints
等)与预读动画很好地配合使用。
API 更改
- 新的默认
intermediateMeasurePolicy
重用预读阶段的测量策略,允许没有条件插槽的SubcomposeLayout
子类型(如Scaffold
、TabRow
和BoxWithConstraints
)默认情况下与预读配合使用。(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
中的预读。这将允许SubcomposeLayout
在LookaheadScope
中正常运行。很快将提供对特定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
已重命名为AnimatedContentTransitionScope
。scaleIn
和scaleOut
现在是稳定的 API。(Iaf54e)
版本 1.4
版本 1.4.3
2023年5月3日
androidx.compose.animation:animation:1.4.3
、androidx.compose.animation:animation-core:1.4.3
和 androidx.compose.animation:animation-graphics:1.4.3
已发布,没有更改(仅版本号增加)。
版本 1.4.2
2023年4月19日
androidx.compose.animation:animation:1.4.2
、androidx.compose.animation:animation-core:1.4.2
和 androidx.compose.animation:animation-graphics:1.4.2
已发布,没有更改。版本 1.4.2 包含以下提交。
版本 1.4.1
2023年4月5日
androidx.compose.animation:animation:1.4.1
、androidx.compose.animation:animation-core:1.4.1
和 androidx.compose.animation:animation-graphics:1.4.1
已发布,没有更改。版本 1.4.1 包含以下提交。
版本 1.4.0
2023年3月22日
androidx.compose.animation:animation:1.4.0
、androidx.compose.animation:animation-core:1.4.0
和 androidx.compose.animation:animation-graphics:1.4.0
已发布。版本 1.4.0 包含以下提交。
自 1.3.0 以来重要更改
- 工具标签受 r
ememberInfiniteTransition
和InfiniteTransition
和 Transition 上的所有扩展函数(例如InfiniteTransition#animateColor
)支持(I56ef7)
版本 1.4.0-rc01
2023年3月8日
androidx.compose.animation:animation:1.4.0-rc01
、androidx.compose.animation:animation-core:1.4.0-rc01
和 androidx.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-beta02
、androidx.compose.animation:animation-core:1.4.0-beta02
和 androidx.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-beta01
、androidx.compose.animation:animation-core:1.4.0-beta01
和 androidx.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-alpha05
、androidx.compose.animation:animation-core:1.4.0-alpha05
和 androidx.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-alpha04
、androidx.compose.animation:animation-core:1.4.0-alpha04
和 androidx.compose.animation:animation-graphics:1.4.0-alpha04
发布。 版本 1.4.0-alpha04 包含以下提交。
新功能
- 工具标签已在
rememberInfiniteTransition
和InfiniteTransition
和Transition
上的所有扩展函数(例如InfiniteTransition#animateColor
)中得到支持 (I56ef7)
API 更改
InfiniteTransition#TransitionAnimationState
和InfiniteTransition#animations
API 现已公开。(I36682)
版本 1.4.0-alpha03
2022 年 12 月 7 日
androidx.compose.animation:animation:1.4.0-alpha03
、androidx.compose.animation:animation-core:1.4.0-alpha03
和 androidx.compose.animation:animation-graphics:1.4.0-alpha03
发布。 版本 1.4.0-alpha03 包含以下提交。
API 更改
- 在使用 Compose 规则的 UI 测试中,在
withFrameNanos
回调期间恢复的延续将不会在所有帧回调都运行完成后才分派。这与 Compose 正常运行时的行为相匹配。但是,依赖于旧行为的测试可能会失败。这只会影响直接调用withFrameNanos
或withFrameMillis
的代码,并且在传递给这些函数的回调之外具有逻辑的代码可能需要移动到回调内部。请参阅 此 CL 中的动画测试更改以获取示例。 - 向
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-alpha02
、androidx.compose.animation:animation-core:1.4.0-alpha02
和 androidx.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-alpha01
、androidx.compose.animation:animation-core:1.4.0-alpha01
和 androidx.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.3
、androidx.compose.animation:animation-core:1.3.3
和 androidx.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.2
、androidx.compose.animation:animation-core:1.3.2
和 androidx.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.1
、androidx.compose.animation:animation-core:1.3.1
和 androidx.compose.animation:animation-graphics:1.3.1
发布。 版本 1.3.1 包含以下提交。
版本 1.3.0
2022 年 10 月 24 日
androidx.compose.animation:animation:1.3.0
、androidx.compose.animation:animation-core:1.3.0
和 androidx.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-rc01
、androidx.compose.animation:animation-core:1.3.0-rc01
和 androidx.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-beta03
、androidx.compose.animation:animation-core:1.3.0-beta03
和 androidx.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-beta02
、androidx.compose.animation:animation-core:1.3.0-beta02
和 androidx.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-beta01
、androidx.compose.animation:animation-core:1.3.0-beta01
和 androidx.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-alpha03
、androidx.compose.animation:animation-core:1.3.0-alpha03
和 androidx.compose.animation:animation-graphics:1.3.0-alpha03
发布。 版本 1.3.0-alpha03 包含以下提交。
API 更改
- 在
Crossfade
、animateAsState
和Animatable
中添加了用于工具标签的新参数 (Iac08a) - 添加了
atFraction
函数,用于根据分数而不是特定持续时间定义关键帧。(I20c76、b/232059455)
版本 1.3.0-alpha02
2022 年 7 月 27 日
androidx.compose.animation:animation:1.3.0-alpha02
、androidx.compose.animation:animation-core:1.3.0-alpha02
和 androidx.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-alpha01
、androidx.compose.animation:animation-core:1.3.0-alpha01
和 androidx.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.1
、androidx.compose.animation:animation-core:1.2.1
和 androidx.compose.animation:animation-graphics:1.2.1
发布。 版本 1.2.1 包含以下提交。
版本 1.2.0
2022 年 7 月 27 日
androidx.compose.animation:animation:1.2.0
、androidx.compose.animation:animation-core:1.2.0
和 androidx.compose.animation:animation-graphics:1.2.0
发布。 版本 1.2.0 包含以下提交。
自 1.1.0 以来重要更改
- Compose 动画现在支持“动画持续时间比例”设置(来自开发者选项)。
- 大量新的实验性缓动曲线。
AnimatedImageVector
现在支持repeatCount
和repeatMode
版本 1.2.0-rc03
2022 年 6 月 29 日
androidx.compose.animation:animation:1.2.0-rc03
、androidx.compose.animation:animation-core:1.2.0-rc03
和 androidx.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-rc02
、androidx.compose.animation:animation-core:1.2.0-rc02
和 androidx.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-rc01
、androidx.compose.animation:animation-core:1.2.0-rc01
和 androidx.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-beta03
、androidx.compose.animation:animation-core:1.2.0-beta03
和 androidx.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-beta02
、androidx.compose.animation:animation-core:1.2.0-beta02
和 androidx.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-beta01
、androidx.compose.animation:animation-core:1.2.0-beta01
和 androidx.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-alpha08
、androidx.compose.animation:animation-core:1.2.0-alpha08
和 androidx.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-alpha07
、androidx.compose.animation:animation-core:1.2.0-alpha07
和 androidx.compose.animation:animation-graphics:1.2.0-alpha07
已发布。 版本 1.2.0-alpha07 包含以下提交。
API 更改
AnimatedImageVector
现在支持repeatCount
和repeatMode
(Ia3e75、b/199304067)
版本 1.2.0-alpha06
2022 年 3 月 23 日
androidx.compose.animation:animation:1.2.0-alpha06
、androidx.compose.animation:animation-core:1.2.0-alpha06
和 androidx.compose.animation:animation-graphics:1.2.0-alpha06
已发布。 版本 1.2.0-alpha06 包含以下提交。
API 更改
- 更新了矢量可绘制对象的解析,以支持自动镜像,如果当前布局方向为 RTL,则翻转
VectorPainter
的内容。(I79cd9、b/185760237)
错误修复
- 更新了矢量图形 API,以使用正确的可组合注解
@VectorComposable
而不是@UiComposable
(I942bc)
版本 1.2.0-alpha05
2022 年 3 月 9 日
androidx.compose.animation:animation:1.2.0-alpha05
、androidx.compose.animation:animation-core:1.2.0-alpha05
和 androidx.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-alpha04
、androidx.compose.animation:animation-core:1.2.0-alpha04
和 androidx.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-alpha03
、androidx.compose.animation:animation-core:1.2.0-alpha03
和 androidx.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-alpha02
、androidx.compose.animation:animation-core:1.2.0-alpha02
和 androidx.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-alpha01
、androidx.compose.animation:animation-core:1.2.0-alpha01
和 androidx.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.1
、androidx.compose.animation:animation-core:1.1.1
和 androidx.compose.animation:animation-graphics:1.1.1
已发布。 版本 1.1.1 包含以下提交。
错误修复
- 修复
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
中的NullPointerException
(aosp/1947059、b/206677462) - 修复在 Android 上从剪贴板读取时由剪贴板内容引起的崩溃。(I06020、b/197769306)
- 修复了
LazyVerticalGrid
中的 RTL 问题 (aosp/1931080、b/207510535)
版本 1.1.0
2022 年 2 月 9 日
androidx.compose.animation:animation:1.1.0
、androidx.compose.animation:animation-core:1.1.0
和 androidx.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-rc03
、androidx.compose.animation:animation-core:1.1.0-rc03
和 androidx.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-rc01
和 androidx.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-beta04
、androidx.compose.animation:animation-core:1.1.0-beta04
和 androidx.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-beta03
、androidx.compose.animation:animation-core:1.1.0-beta03
和 androidx.compose.animation:animation-graphics:1.1.0-beta03
已发布。 1.1.0-beta03 版本包含以下提交。
API 更改
- 添加了新的修饰符 Modifier.onPlaced 以允许观察放置更改。因此,可以根据观察到的放置更改对子修饰符的偏移量进行其他更改。(I558fd)
新的 Crossfade 中 contentKey 支持。动画系统将使用 ContentKey 进行相等性检查。因此,可以通过为不同的状态指定适当的 ContentKey 来实现自定义状态差异。(I558fd)
ContentKey 也将用作保存和恢复内容的键。(I2e055,b/197907070)
1.1.0-beta02 版本
2021 年 11 月 3 日
androidx.compose.animation:animation:1.1.0-beta02
、androidx.compose.animation:animation-core:1.1.0-beta02
和 androidx.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-beta01
、androidx.compose.animation:animation-core:1.1.0-beta01
和 androidx.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-alpha06
、androidx.compose.animation:animation-core:1.1.0-alpha06
和 androidx.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-alpha05
、androidx.compose.animation:animation-core:1.1.0-alpha05
和 androidx.compose.animation:animation-graphics:1.1.0-alpha05
已发布。 1.1.0-alpha05 版本包含以下提交。
API 更改
EnterTransition
、ExitTransition
和一些AnimatedVisibility
API 已稳定。MutableTransitionState.isIdle
也不再是实验性的。(I5072d)重大更改:Enter/ExitTransition 工厂中的 lambda 已移至参数列表的最后位置。(I5072d)
1.1.0-alpha04 版本
2021 年 9 月 15 日
androidx.compose.animation:animation:1.1.0-alpha04
、androidx.compose.animation:animation-core:1.1.0-alpha04
和 androidx.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-alpha03
、androidx.compose.animation:animation-core:1.1.0-alpha03
和 androidx.compose.animation:animation-graphics:1.1.0-alpha03
已发布。 1.1.0-alpha03 版本包含以下提交。
新功能
- Compose
1.1.0-alpha03
已更新为依赖 Kotlin1.5.30
。(I74545)
1.1.0-alpha02 版本
2021 年 8 月 18 日
androidx.compose.animation:animation:1.1.0-alpha02
、androidx.compose.animation:animation-core:1.1.0-alpha02
和 androidx.compose.animation:animation-graphics:1.1.0-alpha02
已发布。 1.1.0-alpha02 版本包含以下提交。
API 更改
- 现在在可重复和无限重复中支持 StartOffset,作为延迟开始时间或在动画开始前快进动画的一种方式。此开始偏移不会重复。(Ic679f,b/195079908)
- 用于缩放的新 Enter/Exit 过渡。它可以与其他类型的 Enter/ExitTransitions 结合使用。(I372da,b/191325593)
1.1.0-alpha01 版本
2021 年 8 月 4 日
androidx.compose.animation:animation:1.1.0-alpha01
、androidx.compose.animation:animation-core:1.1.0-alpha01
和 androidx.compose.animation:animation-graphics:1.1.0-alpha01
已发布。 1.1.0-alpha01 版本包含以下提交。
API 更改
AnimatedImageVector
和相关 API 现在位于新的androidx.compose.animation:animation-graphics
模块中。(I60873)
错误修复
- 将
InfiniteAnimationPolicy
移至 :compose:ui(I5eb09,b/160602714)
1.0 版本
1.0.5 版本
2021 年 11 月 3 日
androidx.compose.animation:animation:1.0.5
和 androidx.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.4
和 androidx.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.3
和 androidx.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.2
和 androidx.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.1
和 androidx.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.0
和 androidx.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 和 AGP7.1
的下一个版本中修复。(b/194289155)
1.0.0-rc02 版本
2021 年 7 月 14 日
androidx.compose.animation:animation:1.0.0-rc02
和 androidx.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-rc01
和 androidx.compose.animation:animation-core:1.0.0-rc01
已发布。 1.0.0-rc01 版本包含以下提交。
错误修复
- 将
InfiniteAnimationPolicy
移至androidx.compose.ui:ui
(I5eb09,b/160602714)
1.0.0-beta09 版本
2021 年 6 月 16 日
androidx.compose.animation:animation:1.0.0-beta09
和 androidx.compose.animation:animation-core:1.0.0-beta09
已发布。 1.0.0-beta09 版本包含以下提交。
API 更改
- 新的
AnimatedContent
可组合项。它使用可自定义的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
什么是配置文件规则?
库的配置文件规则在文本文件
baseline-prof.txt
中指定,该文件位于src/main
或等效目录中。该文件每行指定一个规则,在本例中,规则是用于匹配库中方法或类的模式。这些规则的语法是用于使用adb shell profman --dump-classes-and-methods ...
时的人类可读 ART 配置文件格式的超集。这些规则采用两种形式之一来定位方法或类。方法规则将具有以下模式
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
类规则将具有以下模式
<CLASS_DESCRIPTOR>
这里
<FLAGS>
是一个或多个字符H
、S
和P
,用于指示此方法是否应被标记为“热”、“启动”或“启动后”。<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-beta08
和 androidx.compose.animation:animation-core:1.0.0-beta08
已发布。版本 1.0.0-beta08 包含这些提交。
错误修复
- 现在
detectDragGesures
、detectVerticalGestures
和detectHorizontalGestures
将自动使用位置更改,无需在 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-beta07
和 androidx.compose.animation:animation-core:1.0.0-beta07
已发布。版本 1.0.0-beta07 包含这些提交。
API 更改
- 新的
AnimatedVisibility
API 支持在MutableTransitionState
中指定可见性。这也允许通过currentState
和isIdle
从AnimatedVisibility
外部观察动画状态。- Transition 中新增子级转换支持
- 使用 AnimationScope.transition 支持在 AnimatedVisibility 中自定义退出/进入转换动画
- 新增 animateEnterExit 修饰符,可用于 AnimatedVisibility 的所有子级
- 已弃用采用
initiallyVisible
参数的 AnimatedVisibility API(I702f3)
版本 1.0.0-beta06
2021 年 5 月 5 日
androidx.compose.animation:animation:1.0.0-beta06
和 androidx.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-beta05
和 androidx.compose.animation:animation-core:1.0.0-beta05
已发布。版本 1.0.0-beta05 包含这些提交。
错误修复
- 来自 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-beta04
和 androidx.compose.animation:animation-core:1.0.0-beta04
已发布。版本 1.0.0-beta04 包含这些提交。
API 更改
- 已移除
RowScope
、ColumnScope
、BoxScope
、BoxWithConstraintsScope
的公共实例。(I4e83e,b/181869067)
版本 1.0.0-beta03
2021 年 3 月 24 日
androidx.compose.animation:animation:1.0.0-beta03
和 androidx.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-beta02
和 androidx.compose.animation:animation-core:1.0.0-beta02
已发布。版本 1.0.0-beta02 包含这些提交。
错误修复
- 强制执行对实验性 API 的公共使用的限制(I6aa29,b/174531520)
版本 1.0.0-beta01
2021 年 2 月 24 日
androidx.compose.animation:animation:1.0.0-beta01
和 androidx.compose.animation:animation-core:1.0.0-beta01
已发布。版本 1.0.0-beta01 包含这些提交。
这是 Compose 1.0.0 Beta 的第一个版本。
API 更改
InteractionState
已替换为[Mutable]InteractionSource
- 接口负责发出/收集交互事件。
- 不要将
interactionState = remember { InteractionState() }
传递给诸如Button
和Modifier.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 包。VelocirtTracker 已从 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-alpha12
和 androidx.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.isInfinite
和VectorizedAnimationSpec.isInfinite
,它们指示动画是否无限循环。这可用于动画的实现中,以对这些动画进行特殊处理。例如,可以显示特殊的“剩余时间”消息,或者在测试期间可以取消动画以防止无限期地等待空闲状态。 (Iebb05, b/151940543) - 使用 Long 代替 Uptime 作为动画时间类型 (Ie3aa7, b/177420019)
版本 1.0.0-alpha11
2021 年 1 月 28 日
androidx.compose.animation:animation:1.0.0-alpha11
和 androidx.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-alpha10
和 androidx.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-alpha09
和 androidx.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-alpha08
和 androidx.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)
错误修复
- 根据 API 委员会的反馈,将 Modifier.drawLayer 重命名为 Modifier.graphicsLayer,并更新了相关类到 GraphicsLayer。(I0bd29,b/173834241)
- 添加了 Modifier.scale/rotate API 作为 drawLayer 的便利功能。
- 将 Modifier.drawOpacity 重命名为 Modifier.alpha。
- 将 Modifier.drawShadow 重命名为 Modifier.shadow(I264ca,b/173208140)
- 使 PointerInputData 的 uptime 和 position 字段不可为空。(Id468a)
- offsetPx 修饰符已重命名为 offset。它们现在接受 Lambda 参数而不是 State。(Ic3021,b/173594846)
- 用于在协程中运行动画的新 API(Ied662)
- 弃用以
Ambient
作为后缀命名的环境变量,并用以 Ambient 为前缀的新属性替换它们,遵循其他环境变量和 Compose API 指南。(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-alpha07
和 androidx.compose.animation:animation-core:1.0.0-alpha07
已发布。版本 1.0.0-alpha07 包含这些提交。
错误修复
- 基础 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-alpha06
和 androidx.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-alpha05
和 androidx.compose.animation:animation-core:1.0.0-alpha05
已发布。版本 1.0.0-alpha05 包含这些提交。
API 更改
- 新的 Animation 接口和子类:这些类存储动画的起始和结束条件,因此仅通过播放时间即可查询值和速度(Ie95bd,b/163329867)
错误修复
- 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-alpha04
和 androidx.compose.animation:animation-core:1.0.0-alpha04
已发布。版本 1.0.0-alpha04 包含这些提交。
API 更改
- 使用 @VisibleForTesting 对 rootAnimationClockFactory、transitionsEnabled、blinkingCursorEnabled 和 textInputServiceFactory 进行注释,使其成为内部 API 并隐藏其 kdoc(I554eb,b/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 扩展函数迁移为属性。
- (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 装饰参数已弃用。如果您想在您的框上添加装饰/填充,请改用修饰符(Modifier.background、Modifier.border、Modifier.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-alpha03
和 androidx.compose.animation:animation-core:1.0.0-alpha03
已发布。版本 1.0.0-alpha03 包含这些提交。
错误修复
- 布局 API 中 gravity 的用法已一致重命名为 align 或 alignment。(I2421a,b/164077038)
版本 1.0.0-alpha02
2020 年 9 月 2 日
androidx.compose.animation:animation:1.0.0-alpha02
和 androidx.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") } }
错误修复
onPreCommit 已弃用;onCommit 现在具有 onPreCommit 的行为。
onCommit 和 onActive 现在在与组合更改提交相同的协调器帧中运行,而不是在下一个协调器帧的开头运行。(I70403)
版本 1.0.0-alpha01
2020 年 8 月 26 日
androidx.compose.animation:animation:1.0.0-alpha01
和 androidx.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-dev17
和 androidx.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 的用法,并添加了适当的弃用/替换注释以协助迁移。(I37038,b/162627058)
错误修复
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-dev16
和 androidx.compose.animation:animation-core:0.1.0-dev16
已发布。版本 0.1.0-dev16 包含这些提交。
API 更改
- 现在可以通过
Foo.VectorConverter
访问内置单位的内置向量转换器。例如Dp.VectorConverter
、Color.VectorConverter
、Float.VectorConverter
等(I3e273) - 在
Modifier.animateContentSize()
中支持结束监听器,以便在大小更改动画完成时通知监听器,以及动画的开始/结束大小。(I277b2) - 新的 animateContentSize 修饰符,为其子修饰符的布局大小更改设置动画(Ieffdc)
添加了
MonotonicFrameAnimationClock
,它使您可以使用 MonotonicFrameClock 作为AnimationClockObservable
,以弥合基于新协程的时钟和仍然使用旧的基于回调的时钟的 API 之间的差距。MonotonicFrameClock
的等效项ManualAnimationClock
现在是ManualFrameClock
。(I111c7,b/161247083)
错误修复
- 已更新从右到左支持的 API。已添加 LayoutDirectionAmbient,可用于读取和更改布局方向。已删除 Modifier.rtl 和 Modifier.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-dev15
和 androidx.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,以阐明静态动画规范的概念
- 通过删除创建 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>
文档(I4c7ee,b/143769776) - 新的重复模式:Reverse。此模式在 RepeatableSpec 或 VectorizedRepeatableSpec 中重复动画时会反转上一次迭代。(Ibe0f5)
- 对 ManualAnimationClock 添加了 API:
hasObservers: Boolean
和构造函数参数dispatchOnSubscribe: Boolean
(Iaa134) - 添加了用于在 AnimatedFloat 中获取最小/最大边界的 API(Icd9cc)
错误修复
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 实现,因此现在只有 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() 方法(Ibaced,b/152919067)
runOnIdleCompose
和runOnUiThread
现在是全局函数,而不是 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 已弃用。请改用
setContent
或setViewContent
。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)