过渡
最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 7 月 30 日 | 1.6.0 | - | - | 1.7.0-alpha01 |
声明依赖项
如需添加 Transition 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。
在应用或模块的 build.gradle
文件中添加所需工件的依赖项:
Groovy
dependencies { // Java language implementation implementation "androidx.transition:transition:1.6.0" // Kotlin implementation "androidx.transition:transition-ktx:1.6.0" }
Kotlin
dependencies { // Java language implementation implementation("androidx.transition:transition:1.6.0") // Kotlin implementation("androidx.transition:transition-ktx:1.6.0") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
版本 1.7
版本 1.7.0-alpha01
2025 年 7 月 30 日
发布了 androidx.transition:transition:1.7.0-alpha01
和 androidx.transition:transition-ktx:1.7.0-alpha01
。版本 1.7.0-alpha01 中包含这些提交内容。
bug 修复
- 修复了当视图附加到具有 null
windowId
的窗口时发生的崩溃。(I2ddf6)
版本 1.6
版本 1.6.0
2025 年 4 月 23 日
发布了 androidx.transition:transition:1.6.0
和 androidx.transition:transition-ktx:1.6.0
。版本 1.6.0 中包含这些提交内容。
版本 1.6.0-rc01
2025 年 3 月 26 日
发布了 androidx.transition:transition:1.6.0-rc01
和 androidx.transition:transition-ktx:1.6.0-rc01
。版本 1.6.0-rc01 中包含这些提交内容。
版本 1.6.0-beta01
2025 年 3 月 12 日
发布了 androidx.transition:transition:1.6.0-beta01
和 androidx.transition:transition-ktx:1.6.0-beta01
,这两个版本与上个 Alpha 版相比没有变化。版本 1.6.0-beta01 中包含这些提交内容。
版本 1.6.0-alpha01
2024 年 12 月 11 日
发布了 androidx.transition:transition:1.6.0-alpha01
和 androidx.transition:transition-ktx:1.6.0-alpha01
。版本 1.6.0-alpha01 中包含这些提交内容。
新功能
- 过渡现在会为用于为其过渡添加动画效果的
ViewOverlays
设置不相交的父级。这样就可以通过不相交的父级来解析所有者,这意味着您现在可以在过渡期间正确解析ViewModels
、生命周期等。(I10a16、b/340894487、b/287484338)
bug 修复
- 此库现在使用类型使用的 JSpecify nullness 注释。Kotlin 开发者应使用以下编译器实参来强制执行正确用法:
-Xjspecify-annotations=strict
(这是 Kotlin 编译器从 2.1.0 版开始的默认实参)。(I1f54e、b/326456246) - 移除了对新平台 API 访问权限的手动概述,因为在使用 AGP 7.3 或更高版本(例如 R8 版本 3.3)的 R8 时,以及在使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)的所有 build 时,这种情况都会通过 API 建模自动发生。建议未使用 AGP 的客户更新到 D8 版本 8.1 或更高版本。如需了解更多详情,请参阅这篇文章。(Ia60e0、b/345472586)
版本 1.5
版本 1.5.1
2024 年 7 月 24 日
发布了 androidx.transition:transition:1.5.1
和 androidx.transition:transition-ktx:1.5.1
。版本 1.5.1 中包含这些提交内容。
bug 修复
- 修复了以下问题:如果可搜索的过渡未启动,则对该过渡调用
animateToStart()
或animateToEnd()
会被忽略。(I44d96、b/338624457)
版本 1.5.0
2024 年 5 月 1 日
发布了 androidx.transition:transition:1.5.0
和 androidx.transition:transition-ktx:1.5.0
。版本 1.5.0 中包含这些提交内容。
自版本 1.4.0 以来的重要变更
- 过渡支持在 API 34 及更高版本上进行搜索。向
TransitionManager
添加了一个新 API,即controlDelayedTransition()
,该 API 会返回一个TransitionSeekController
,用于查找Transition
。Fragment 1.7.0 使用此功能在用户使用预测性返回手势时自动查找过渡。 - 过渡新增了一个方法
getRootTransition()
,该方法会返回包含当前过渡的过渡,或者如果当前过渡未包含在任何其他过渡中,则返回当前过渡。如果开发者需要监听整个 Transition 何时开始或结束,这会非常有用。 TransitionListeners
现在具有新的onTransitionStart()
和onTransitionEnd()
监听器,可让开发者了解过渡是开始还是结束,是反向还是非反向。这对于开发具有TransitionListeners
的可搜索过渡效果非常重要。
版本 1.5.0-rc02
2024 年 4 月 17 日
发布了 androidx.transition:transition:1.5.0-rc02
和 androidx.transition:transition-ktx:1.5.0-rc02
。版本 1.5.0-rc02 中包含这些提交内容。
依赖项更新
- 将 Fragment 依赖项更新为 1.7.0-rc02 版,修复了以下 bug:如果将不可搜索的共享元素添加到所有其他转换都可搜索的事务中,则会发生崩溃。
版本 1.5.0-rc01
2024 年 4 月 3 日
发布了 androidx.transition:transition:1.5.0-rc01
和 androidx.transition:transition-ktx:1.5.0-rc01
。版本 1.5.0-rc01 中包含这些提交内容。
版本 1.5.0-beta01
2024 年 3 月 20 日
发布了 androidx.transition:transition:1.5.0-beta01
和 androidx.transition:transition-ktx:1.5.0-beta01
。版本 1.5.0-beta01 中包含这些提交内容。
bug 修复
- 修复了 Fragment 中的一个问题,即使用预测性返回手势中断传入过渡会销毁进入视图,从而可能导致屏幕空白。(Id3f22、b/319531491)
版本 1.5.0-alpha06
2024 年 1 月 10 日
发布了 androidx.transition:transition:1.5.0-alpha06
和 androidx.transition:transition-ktx:1.5.0-alpha06
。版本 1.5.0-alpha06 中包含这些提交内容。
bug 修复
- 使用
TransitionSeekController.animateToStart()
时,添加的TransitionListeners
现在会在animateToStart()
的给定Runnable
之后调用onTransitionEnd()
。(Ic6a55、b/307624554)
依赖项更新
- Fragment 依赖项已更新为
1.7.0-alpha08
。
版本 1.5.0-alpha05
2023 年 11 月 29 日
发布了 androidx.transition:transition:1.5.0-alpha05
和 androidx.transition:transition-ktx:1.5.0-alpha05
。版本 1.5.0-alpha05 中包含这些提交内容。
bug 修复
- 修复了因设置共享元素转换但未能同时设置
enter/exitTransition
而导致的NullPointerException
。(I8472b) - 修复了以下问题:使用
Slide()
的animateToStart()
无法将视图移回起始位置(I698f4、b/300157785) - 修复了 Transition 中导致取消失败的重入问题。(Iddcce、b/308379201)
版本 1.5.0-alpha04
2023 年 10 月 4 日
androidx.transition:transition:1.5.0-alpha04
和 `androidx.transition:transition-ktx:1.5.0-alpha04 已发布。版本 1.5.0-alpha04 中包含这些提交内容。
API 变更
- 重大变更 -
animateToStart()
方法现在接受Runnable
,该参数应用于将过渡视图返回到其原始状态。
版本 1.5.0-alpha03
2023 年 9 月 20 日
发布了 androidx.transition:transition:1.5.0-alpha03
和 androidx.transition:transition-ktx:1.5.0-alpha03
。版本 1.5.0-alpha03 中包含这些提交内容。
新功能
- 现在,当与 Fragment
1.7.0-alpha05
搭配使用时,Transition 可在 Android 14 设备上支持应用内预测性返回动画。
bug 修复
- 修复了幻灯片切换中断 bug。当滑动过渡中断了进入过渡以移除视图时,该视图会跳到错误的位置。(I946f8、b/297427333)
版本 1.5.0-alpha02
2023 年 9 月 6 日
发布了 androidx.transition:transition:1.5.0-alpha02
和 androidx.transition:transition-ktx:1.5.0-alpha02
。版本 1.5.0-alpha02 中包含这些提交内容。
新功能
TransitionSeekController
现在允许您通过setCurrentFragment()
将进度设置为总时长的分数。(aosp/2647607)TransitionSeekController
现在允许通过调用addOnProgressChangedListener
来观察使用animateToStart()
和animateToEnd()
时的进度。(aosp/2647607)- 添加了
TransitionManager.seekTo()
,以允许使用场景来查找过渡。(aosp/2647607) - 为搜索过渡添加了基于物理特性的动画。它使用一维速度跟踪器来跟踪
setCurrentFraction()
或setCurrentPlayTimeMillis()
的进度变化,并将其用于animateToStart
和animateToEnd
的初始速度。(aosp/2647607)
bug 修复
- 修复了在搜索
AutoTransition
时出现的闪烁问题。(aosp/2643369) - 修复了
Slide
过渡在中断时会跳到错误起始位置的问题。(aosp/2733729、b/297427333)
依赖项更新
- 过渡现在使用 API 34 进行编译。
版本 1.5.0-alpha01
2023 年 5 月 10 日
发布了 androidx.transition:transition:1.5.0-alpha01
和 androidx.transition:transition-ktx:1.5.0-alpha01
。此版本是在内部分支中开发的。
新功能
- 过渡支持在 API 34 及更高版本上进行搜索。向
TransitionManager
添加了一个新 API,即controlDelayedTransition()
,它会返回一个TransisionSeekController
,用于查找过渡。
API 变更
TransitionManager
有一个新方法controlDelayedTransition()
,可让应用在 API 34 及更高版本上控制过渡动画的进度。返回的TransitionSeekController
可让开发者了解过渡何时可以进行搜索、动画的持续时间,并允许设置动画的当前时间。controlDelayedTransition()
仅支持替换isSeekable()
以返回 true 的过渡。- 过渡新增了一个方法
getRootTransition()
,该方法会返回包含当前过渡的过渡,或者如果当前过渡未包含在任何其他过渡中,则返回当前过渡。如果开发者需要监听整个 Transition 何时开始或结束,这会非常有用。 TransitionListeners
现在具有新的onTransitionStart()
和onTransitionEnd()
监听器,可让开发者了解过渡是开始还是结束,是反向还是非反向。这对于开发具有TransitionListeners
的可搜索过渡效果非常重要。
bug 修复
- 过渡现在会在克隆时复制其
TransitionListeners
。这意味着在createAnimator()
期间添加新的监听器不会影响根过渡。
版本 1.4.1
版本 1.4.1
2021 年 4 月 21 日
发布了 androidx.transition:transition:1.4.1
和 androidx.transition:transition-ktx:1.4.1
。版本 1.4.1 中包含这些提交内容。
bug 修复
- 修复了以下问题:在一个容器中启动
Transition
时,系统会在其他容器中意外暂停其他正在运行的过渡,从而导致这些过渡始终无法完成。(aosp/1664439、b/182845041)
版本 1.4.0
版本 1.4.0
2021 年 1 月 27 日
发布了 androidx.transition:transition:1.4.0
和 androidx.transition:transition-ktx:1.4.0
。版本 1.4.0 中包含这些提交内容。
自 1.3.0 以来的重要变更
transition-ktx
工件引入了 Kotlin 扩展程序,用于向 AndroidXTransition
实例添加监听器。(b/138870873)
版本 1.4.0-rc01
2020 年 12 月 2 日
发布了 androidx.transition:transition:1.4.0-rc01
和 androidx.transition:transition-ktx:1.4.0-rc01
,这些版本与 1.4.0-beta01
相比没有变化。版本 1.4.0-rc01 中包含这些提交内容。
版本 1.4.0-beta01
2020 年 7 月 22 日
发布了 androidx.transition:transition:1.4.0-beta01
和 androidx.transition:transition-ktx:1.4.0-beta01
,这两个版本与 1.4.0-alpha01
相比没有变化。版本 1.4.0-beta01 中包含这些提交内容。
版本 1.4.0-alpha01
2020 年 6 月 24 日
发布了 androidx.transition:transition:1.4.0-alpha01
和 androidx.transition:transition-ktx:1.4.0-alpha01
。版本 1.4.0-alpha01 中包含这些提交内容。
新功能
transition-ktx
工件引入了 Kotlin 扩展程序,用于向 AndroidXTransition
实例添加监听器。(b/138870873)
版本 1.3.1
版本 1.3.1
2020 年 2 月 19 日
发布了 androidx.transition:transition:1.3.1
。版本 1.3.1 中包含这些提交内容。
bug 修复
- 修复了当使用 ChangeTransform 时,无法正确裁剪某些添加了动画效果的视图的错误 (b/148798452)
版本 1.3.0
版本 1.3.0
2020 年 1 月 22 日
发布了 androidx.transition:transition:1.3.0
。版本 1.3.0 中包含这些提交内容。
自 1.2.0 以来的重要变更
- 针对 Fragment 1.2.0 做出了以下改进:改进了与 Fragment 1.2.0 的集成,以确保 Fragment 的视图在转换完成之前不会被销毁,并且会在适当的时间取消转换
版本 1.3.0-rc02
2019 年 12 月 4 日
发布了 androidx.transition:transition:1.3.0-rc02
。版本 1.3.0-rc02 中包含这些提交内容。
bug 修复
- 修复了在弹出隐藏的 Fragment 之后会将视图错误地标记为
INVISIBLE
的问题。(b/70793925)
版本 1.3.0-rc01
2019 年 10 月 23 日
发布了 androidx.transition:transition:1.3.0-rc01
,该版本与 1.3.0-beta01
相比没有变化。版本 1.3.0-rc01 中包含这些提交内容。
版本 1.3.0-beta01
2019 年 10 月 9 日
发布了 androidx.transition:transition:1.3.0-beta01
。版本 1.3.0-beta01 中包含这些提交内容。
新功能
- 改进了与 Fragment
1.2.0-beta01
的集成,以确保 Fragment 的视图在转换完成之前不会被销毁,并且在适当的时间取消转换。(aosp/1119841)
版本 1.2.0
版本 1.2.0
2019 年 10 月 9 日
发布了 androidx.transition:transition:1.2.0
,该版本与 1.2.0-rc01 相比没有变化。版本 1.2.0 中包含这些提交内容。
自版本 1.1.0 以来的重要变更
如果以 API 级别 29 为目标平台,则应使用此版本。否则,某些转换将无法正常进行。此版本使用了 API 级别 29 中新增的公共方法,而不是反射调用。这是我们对非 SDK 接口实施的限制的一部分。
版本 1.2.0-rc01
2019 年 9 月 5 日
发布了 androidx.transition:transition:1.2.0-rc01
,该版本与版本 1.2.0-beta01
相比没有变化。点击此处可查看此版本中包含的提交内容。
版本 1.2.0-beta01
2019 年 7 月 2 日
发布了 androidx.transition:transition:1.2.0-beta01
。点击此处可查看此版本中包含的提交内容。
新功能
- 如果您指定 API 级别 29 为
targetSdkVersion
,则应使用此版本。否则,某些转换将无法正常进行。此版本使用了 API 级别 29 中新增的公共方法,而不是反射调用。这是我们对非 SDK 接口实施的限制的一部分。
版本 1.2.0-alpha01
2019 年 5 月 7 日
发布了 androidx.transition:transition:1.2.0-alpha01
。
新功能
- 如果您指定 Q 为
targetSdkVersion
,则应使用此版本。否则,某些转换将无法正常进行。此版本使用了 Q 中新增的公共方法,而不是反射调用。这是我们对非 SDK 接口实施的限制的一部分。
版本 1.1.0
版本 1.1.0
2019 年 7 月 2 日
发布了 androidx.transition:transition:1.1.0
,该版本与 1.1.0-rc02
相比没有变化。点击此处可查看此版本中包含的提交内容。
版本 1.1.0-rc02
2019 年 6 月 5 日
发布了 androidx.transition:transition:1.1.0-rc02
。点击此处可查看此版本中包含的提交内容。
bug 修复
- 修复了
TransitionManager.endTransitions()
以正确处理从属转换。(aosp/946400)
版本 1.1.0-rc01
2019 年 5 月 7 日
发布了 androidx.transition:transition:1.1.0-rc01
。点击此处可查看此版本中包含的提交内容。
版本 1.1.0-beta01
2019 年 4 月 3 日
发布了 androidx.transition:transition:1.1.0-beta01
。点击此处可查看此版本中包含的提交内容。
bug 修复
- 修复了 API 级别 17 及更低版本中出现的
Visibility
中的ViewGroupOverlay
缓存错误 (aosp/937350)
版本 1.1.0-alpha02
2019 年 3 月 13 日
发布了 androidx.transition:transition:1.1.0-alpha02
。点击此处可查看此版本中包含的完整提交内容列表。
API 变更
- 方法参数的
Scene.getCurrentScene()
类型已从View
更改为ViewGroup
。
bug 修复
- 通过
setStartDelay()
提供额外延迟时,SidePropagation
无法正常工作 (b/119839526)。 - 在 API 21 之前,
ChangeImageTransform
中断时会应用错误的矩阵 (b/123226255)。 - 在 API 21 之前,
ChangeTransform
在某些情况下不正常工作 (b/125777978)。
版本 1.1.0-alpha01
2018 年 12 月 3 日
API 变更
- aosp/807055:
Scene.getCurrentScene(View)
方法已公开。您可以使用此方法根据当前场景编写自定义条件逻辑。
bug 修复
- 修复了使用
TransitionManager
收起/展开RecyclerView
中的项时出现的崩溃问题 (b/37129527)。 - 修复了应用 Visibility 转换时动画不正确的问题 (b/62629600)。
- 允许替换 TransitionSet 子级的时长和插值类型等值 (b/64644617)。
- 修复了其他一些小错误。