过渡
最新更新 | 稳定版 | 发布候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 4 月 23 日 | 1.6.0 | - | - | - |
声明依赖项
要添加对 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") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮为您已有的问题投票。
有关更多信息,请参阅问题跟踪器文档。
版本 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 包含这些提交。
新功能
- Transition 现在为其用于动画转换的
ViewOverlays
设置了不相交的父级。这允许通过不相交的父级解析所有者,这意味着您现在可以在转换期间正确解析ViewModels
、生命周期等。(I10a16、b/340894487、b/287484338)
Bug 修复
- 此库现在使用 JSpecify nullness annotations,它们是类型使用的。Kotlin 开发者应使用以下编译器参数来强制执行正确用法:
-Xjspecify-annotations=strict
(这是 Kotlin 编译器 2.1.0 版开始的默认设置)。(I1f54e、b/326456246) - 移除了对新平台 API 访问的手动概述,因为当使用 R8(AGP 7.3 或更高版本,例如 R8 3.3 版)和所有构建(AGP 8.1 或更高版本,例如 D8 8.1 版)时,此操作通过 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 以来的重要变更
- Transitions 支持在 API 34 及更高版本上进行寻迹。向
TransitionManager
添加了一个新的 APIcontrolDelayedTransition()
,它返回一个TransitionSeekController
,允许寻迹Transition
。此功能由 Fragment 1.7.0 使用,以便在使用预测性返回手势时自动寻迹转换。 - Transitions 有一个新方法
getRootTransition()
,它返回包含当前 Transition 的 Transition,如果它不被任何其他 Transition 包含,则返回当前 Transition。如果开发者需要监听整个 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,修复了一个错误,即如果将不可寻址的共享元素添加到所有其他转换都可寻址的事务中,则会发生崩溃。
版本 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) - 修复了
animateToStart()
与Slide()
一起使用时无法将视图移回起始位置的问题。(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
,该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 包含这些提交。
新功能
- Transition 现在与 Fragment
1.7.0-alpha05
结合使用时,在 Android 14 设备上提供应用内预测性返回动画的支持。
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
现在允许在使用animateToStart()
和animateToEnd()
时通过调用addOnProgressChangedListener
来观察进度。(aosp/2647607)- 添加了
TransitionManager.seekTo()
以允许使用场景进行寻迹转换。(aosp/2647607) - 为寻迹转换添加了基于物理的动画。它使用一维速度跟踪器通过
setCurrentFraction()
或setCurrentPlayTimeMillis()
跟踪进度变化,并将其用作animateToStart
和animateToEnd
的初始速度。(aosp/2647607)
Bug 修复
- 修复了寻迹
AutoTransition
时出现的闪烁问题。(aosp/2643369) - 修复了
Slide
转换在中断时会跳到错误起始位置的问题。(aosp/2733729、b/297427333)
依赖项更新
- Transition 现在使用 API 34 进行编译。
版本 1.5.0-alpha01
2023 年 5 月 10 日
androidx.transition:transition:1.5.0-alpha01
和 androidx.transition:transition-ktx:1.5.0-alpha01
已发布。此版本在内部分支中开发。
新功能
- Transition 支持在 API 34 及更高版本上进行寻迹。向
TransitionManager
添加了一个新的 APIcontrolDelayedTransition()
,它返回一个TransisionSeekController
,允许寻迹 Transition。
API 变更
TransitionManager
有一个新方法controlDelayedTransition()
,允许应用在 API 34+ 上控制过渡动画的进度。返回的TransitionSeekController
让开发者知道何时可以进行寻迹、动画的持续时间,并允许设置动画的当前时间。只有覆盖isSeekable()
返回 true 的 Transition 才受controlDelayedTransition()
支持。- Transitions 有一个新方法
getRootTransition()
,它返回包含当前 Transition 的 Transition,如果它不被任何其他 Transition 包含,则返回当前 Transition。如果开发者需要监听整个 Transition 何时开始或结束,这可能很有用。 TransitionListeners
现在有新的onTransitionStart()
和onTransitionEnd()
监听器,允许开发者知道转换是正向开始还是反向结束。这对于开发具有TransitionListeners
的可寻迹转换非常重要。
Bug 修复
- Transition 现在在克隆时会复制它们的
TransitionListeners
。这意味着在createAnimator()
期间添加新监听器不会影响根 Transition。
版本 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
已发布。此版本中包含的提交可以在此处找到。
新功能
- 如果您将 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 修复
- 修复了
Visibility
中在 API 级别 17 及更低版本上发生的ViewGroupOverlay
缓存错误(aosp/937350)
版本 1.1.0-alpha02
2019 年 3 月 13 日
androidx.transition:transition:1.1.0-alpha02
已发布。此版本中包含的完整提交列表可以在此处找到。
API 变更
Scene.getCurrentScene()
的方法参数类型从View
更改为ViewGroup
。
Bug 修复
SidePropagation
在通过setStartDelay()
提供额外延迟时不起作用(b/119839526)。ChangeImageTransform
在 API 21 之前被中断时应用了错误的矩阵(b/123226255)。ChangeTransform
在 API 21 之前在某些情况下无法正常工作(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)。
- 修复了许多其他小错误。