过渡

使用起始和结束布局在 UI 中设置动画运动。
最新更新 稳定版 候选版本 Beta 版 Alpha 版
2024 年 7 月 24 日 1.5.1 - - -

声明依赖项

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

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

Groovy

dependencies {
    // Java language implementation
    implementation "androidx.transition:transition:1.5.1"
    // Kotlin
    implementation "androidx.transition:transition-ktx:1.5.1"
}

Kotlin

dependencies {
    // Java language implementation
    implementation("androidx.transition:transition:1.5.1")
    // Kotlin
    implementation("androidx.transition:transition-ktx:1.5.1")
}

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

反馈

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

创建新问题

有关更多信息,请参阅问题跟踪器文档

版本 1.5

版本 1.5.1

2024 年 7 月 24 日

androidx.transition:transition:1.5.1androidx.transition:transition-ktx:1.5.1已发布。版本 1.5.1 包含这些提交

错误修复

  • 修复了在可搜索过渡上调用animateToStart()animateToEnd()时,如果过渡未启动则会忽略该调用的问题。(I44d96b/338624457

版本 1.5.0

2024 年 5 月 1 日

androidx.transition:transition:1.5.0androidx.transition:transition-ktx:1.5.0已发布。版本 1.5.0 包含这些提交

自 1.4.0 以来重要更改

  • 从 API 34 及更高版本开始,过渡支持查找。一个新的 API 添加到 TransitionManager 中,即 controlDelayedTransition(),它返回一个 TransitionSeekController,允许查找 Transition。此功能由 Fragment 1.7.0 使用,用于在使用预测后退手势时自动查找过渡。
  • 过渡新增了一个方法 getRootTransition(),它返回包含当前过渡的过渡,或者如果当前过渡未包含在任何其他过渡中,则返回当前过渡本身。如果开发者需要在整个过渡开始或结束时添加监听器,这将非常有用。
  • TransitionListeners 现在具有新的 onTransitionStart()onTransitionEnd() 监听器,允许开发者知道过渡是正向还是反向开始或结束。这对于开发具有 TransitionListeners 的可查找过渡非常重要。

版本 1.5.0-rc02

2024 年 4 月 17 日

androidx.transition:transition:1.5.0-rc02androidx.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-rc01androidx.transition:transition-ktx:1.5.0-rc01 已发布。版本 1.5.0-rc01 包含 这些提交

版本 1.5.0-beta01

2024 年 3 月 20 日

androidx.transition:transition:1.5.0-beta01androidx.transition:transition-ktx:1.5.0-beta01 已发布。版本 1.5.0-beta01 包含 这些提交

错误修复

  • 修复了 Fragment 中的一个问题,即使用预测后退手势中断传入过渡会导致进入视图被销毁,可能导致出现空白屏幕。(Id3f22b/319531491

版本 1.5.0-alpha06

2024 年 1 月 10 日

androidx.transition:transition:1.5.0-alpha06androidx.transition:transition-ktx:1.5.0-alpha06 已发布。版本 1.5.0-alpha06 包含这些提交。

错误修复

  • 当使用 TransitionSeekController.animateToStart() 时,添加的 TransitionListeners 现在将在 animateToStart() 给定的 Runnable 之后调用 onTransitionEnd()。(Ic6a55b/307624554

依赖项更新

  • Fragment 依赖项已更新到 1.7.0-alpha08

版本 1.5.0-alpha05

2023 年 11 月 29 日

androidx.transition:transition:1.5.0-alpha05androidx.transition:transition-ktx:1.5.0-alpha05 已发布。版本 1.5.0-alpha05 包含这些提交。

错误修复

  • 修复了一个由设置共享元素过渡并未能同时设置 enter/exitTransition 引起的 NullPointerException。(I8472b
  • 修复了 animateToStart()Slide() 一起使用时未能将 View 移回起始位置的问题(I698f4b/300157785
  • 修复了 Transition 中的重入问题,该问题导致取消中断。(Iddcceb/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-alpha03androidx.transition:transition-ktx:1.5.0-alpha03 已发布。版本 1.5.0-alpha03 包含这些提交。

新功能

  • 当与 Fragment 1.7.0-alpha05 一起使用时,Transition 现在支持在 Android 14 设备上进行应用内预测后退动画。

错误修复

  • 修复了滑动过渡中断错误。当滑动过渡中断进入过渡以删除 View 时,它会跳转到错误的位置。(I946f8b/297427333

版本 1.5.0-alpha02

2023 年 9 月 6 日

androidx.transition:transition:1.5.0-alpha02androidx.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() 的进度变化,并将其用于 animateToStartanimateToEnd 的初始速度。(aosp/2647607

错误修复

  • 修复了查找 AutoTransition 时出现的闪烁问题。(aosp/2643369
  • 修复了当滑动过渡被中断时会跳转到错误的起始位置的问题。(aosp/2733729b/297427333

依赖项更新

  • Transition 现在可以使用 API 34 编译。

版本 1.5.0-alpha01

2023 年 5 月 10 日

androidx.transition:transition:1.5.0-alpha01androidx.transition:transition-ktx:1.5.0-alpha01 已发布。此版本是在内部分支中开发的。

新功能

  • 从 API 34 及更高版本开始,过渡支持查找。一个新的 API 添加到 TransitionManager 中,即 controlDelayedTransition(),它返回一个 TransisionSeekController,允许查找过渡。

API 更改

  • TransitionManager 有一个新方法 controlDelayedTransition(),允许应用程序在 API 34+ 上控制过渡动画的进度。返回的 TransitionSeekController 允许开发者知道过渡何时准备好进行查找、动画的持续时间,并允许设置动画的当前时间。只有将 isSeekable() 覆盖为返回 true 的过渡才受 controlDelayedTransition() 支持。
  • 过渡新增了一个方法 getRootTransition(),它返回包含当前过渡的过渡,或者如果当前过渡未包含在任何其他过渡中,则返回当前过渡本身。如果开发者需要在整个过渡开始或结束时添加监听器,这将非常有用。
  • TransitionListeners 现在具有新的 onTransitionStart()onTransitionEnd() 监听器,允许开发者知道过渡是正向还是反向开始或结束。这对于开发具有 TransitionListeners 的可查找过渡非常重要。

错误修复

  • 过渡现在在克隆时会复制其 TransitionListeners。这意味着在 createAnimator() 期间添加新的监听器不会影响根过渡。

版本 1.4.1

版本 1.4.1

2021 年 4 月 21 日

androidx.transition:transition:1.4.1androidx.transition:transition-ktx:1.4.1 已发布。版本 1.4.1 包含这些提交。

错误修复

  • 修复了一个问题,即在一个容器中启动 Transition 会无意中暂停其他在单独容器中运行的过渡,导致这些其他过渡永远无法完成。(aosp/1664439b/182845041

版本 1.4.0

版本 1.4.0

2021 年 1 月 27 日

androidx.transition:transition:1.4.0androidx.transition:transition-ktx:1.4.0 已发布。版本 1.4.0 包含这些提交。

自 1.3.0 以来发生的主要更改

  • transition-ktx 工件引入了 Kotlin 扩展,用于向 AndroidX Transition 实例添加监听器。(b/138870873

版本 1.4.0-rc01

2020 年 12 月 2 日

androidx.transition:transition:1.4.0-rc01androidx.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-beta01androidx.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-alpha01androidx.transition:transition-ktx:1.4.0-alpha01 发布。 版本 1.4.0-alpha01 包含这些提交。

新功能

  • transition-ktx 工件引入了 Kotlin 扩展,用于向 AndroidX Transition 实例添加监听器。 (b/138870873)

版本 1.3.1

版本 1.3.1

2020 年 2 月 19 日

androidx.transition:transition:1.3.1 发布。 版本 1.3.1 包含这些提交。

错误修复

  • 修复了使用 ChangeTransform 时某些动画 View 被错误剪裁的错误 (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 的 View 在过渡完成之前不会被销毁,并且过渡在适当的时间被取消

版本 1.3.0-rc02

2019 年 12 月 4 日

androidx.transition:transition:1.3.0-rc02 发布。 版本 1.3.0-rc02 包含这些提交

错误修复

  • 修复了弹出一个隐藏的 Fragment 后 View 被错误标记为 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 的 View 在过渡完成之前不会被销毁,并且过渡在适当的时间被取消。 (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 发布。此版本中包含的提交可以在这里找到 这里

错误修复

  • 修复了 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 发布。此版本中包含的提交可以在这里找到 这里

错误修复

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

错误修复

  • SidePropagation 在通过 setStartDelay() 提供额外延迟时不起作用 (b/119839526).
  • ChangeImageTransform 在 API 21 之前中断时应用错误的矩阵 (b/123226255).
  • ChangeTransform 在 API 21 之前某些情况下工作不正确 (b/125777978).

版本 1.1.0-alpha01

2018 年 12 月 3 日

API 更改

  • aosp/807055Scene.getCurrentScene(View) 方法公开。它允许您根据当前场景编写自定义条件逻辑。

错误修复

  • 修复了使用 TransitionManagerRecyclerView 中折叠/展开项目时发生的崩溃 (b/37129527).
  • 修复了应用两个 Visibility 过渡时动画不正确的错误 (b/62629600).
  • 允许覆盖 TransitionSet 子项的持续时间和插值器等值 (b/64644617).
  • 修复了许多其他小错误。