Transition
Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release |
---|---|---|---|---|
December 11, 2024 | 1.5.1 | - | - | 1.6.0-alpha01 |
Declaring dependencies
To add a dependency on Transition, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle
file for
your app or module:
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") }
For more information about dependencies, see Add build dependencies.
Feedback
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
Version 1.6
Version 1.6.0-alpha01
December 11, 2024
androidx.transition:transition:1.6.0-alpha01
and androidx.transition:transition-ktx:1.6.0-alpha01
are released. Version 1.6.0-alpha01 contains these commits.
New Features
- Transition now sets the disjoint parent for
ViewOverlays
used to animate its transitions. This allows for the resolution of owners through the disjoint parent, which means you can now correctly resolveViewModels
, lifecycles, etc. during a transition. (I10a16, b/340894487, b/287484338)
Bug Fixes
- This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler arguments to enforce correct usage:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(I1f54e, b/326456246) - Removed manual outlining of access to new platform APIs since this happens automatically via API modeling when using R8 with AGP 7.3 or later (e.g. R8 version 3.3) and for all builds when using AGP 8.1 or later (e.g. D8 version 8.1). Clients who are not using AGP are advised to update to D8 version 8.1 or later. See this article for more details. (Ia60e0, b/345472586)
Version 1.5
Version 1.5.1
July 24, 2024
androidx.transition:transition:1.5.1
and androidx.transition:transition-ktx:1.5.1
are released. Version 1.5.1 contains these commits.
Bug Fixes
- Fixed an issue where calls to
animateToStart()
oranimateToEnd()
on a seekable transition would be ignored if the transition was not started. (I44d96, b/338624457)
Version 1.5.0
May 1, 2024
androidx.transition:transition:1.5.0
and androidx.transition:transition-ktx:1.5.0
are released. Version 1.5.0 contains these commits.
Important changes since 1.4.0
- Transitions support seeking on API 34 and above. A new API was added to
TransitionManager
,controlDelayedTransition()
, which returns aTransitionSeekController
that allows seeking theTransition
. This functionality is used by Fragment 1.7.0 to automatically seek transitions when using the Predictive Back Gesture. - Transitions have a new method,
getRootTransition()
, that returns the Transition containing the current Transition or the current Transition if it isn't contained by any other Transition. This can be useful if the developer needs to have listeners for when the entire Transition starts or ends. TransitionListeners
now have newonTransitionStart()
andonTransitionEnd()
listeners that allow the developer to know whether the transition is starting or ending going in reverse or not. This can be important for developing seekable transitions that haveTransitionListeners
.
Version 1.5.0-rc02
April 17, 2024
androidx.transition:transition:1.5.0-rc02
and androidx.transition:transition-ktx:1.5.0-rc02
are released. Version 1.5.0-rc02 contains these commits.
Dependency Update
- Updated Fragment dependency to version 1.7.0-rc02 which fixed a bug where if a non-seekable shared element was added to a transaction where all other transitions were seekable, there would be a crash.
Version 1.5.0-rc01
April 3, 2024
androidx.transition:transition:1.5.0-rc01
and androidx.transition:transition-ktx:1.5.0-rc01
are released. Version 1.5.0-rc01 contains these commits.
Version 1.5.0-beta01
March 20, 2024
androidx.transition:transition:1.5.0-beta01
and androidx.transition:transition-ktx:1.5.0-beta01
are released. Version 1.5.0-beta01 contains these commits.
Bug Fixes
- Fixed an issue in Fragments where interrupting incoming transitions with a Predictive back gesture would destroy the entering view, potentially leaving a blank screen. (Id3f22, b/319531491)
Version 1.5.0-alpha06
January 10, 2024
androidx.transition:transition:1.5.0-alpha06
and androidx.transition:transition-ktx:1.5.0-alpha06
are released. Version 1.5.0-alpha06 contains these commits.
Bug Fixes
- When
TransitionSeekController.animateToStart()
is used, addedTransitionListeners
will now haveonTransitionEnd()
called after theanimateToStart()
's givenRunnable
. (Ic6a55, b/307624554)
Dependency Update
- The Fragment dependency has been updated to
1.7.0-alpha08
.
Version 1.5.0-alpha05
November 29, 2023
androidx.transition:transition:1.5.0-alpha05
and androidx.transition:transition-ktx:1.5.0-alpha05
are released. Version 1.5.0-alpha05 contains these commits.
Bug Fixes
- Fixed a
NullPointerException
caused by setting a shared element transition and failing to set anenter/exitTransition
as well. (I8472b) - Fixed issue where
animateToStart()
withSlide()
failed to move the View back to the start position (I698f4, b/300157785) - Fixed reentrancy problem in Transition which broke cancellation. (Iddcce, b/308379201)
Version 1.5.0-alpha04
October 4, 2023
androidx.transition:transition:1.5.0-alpha04
and `androidx.transition:transition-ktx:1.5.0-alpha04 are released. Version 1.5.0-alpha04 contains these commits.
API Changes
- Breaking Change - The
animateToStart()
method now takes aRunnable
that should be used to return the transitioning views back to their original state.
Version 1.5.0-alpha03
September 20, 2023
androidx.transition:transition:1.5.0-alpha03
and androidx.transition:transition-ktx:1.5.0-alpha03
are released. Version 1.5.0-alpha03 contains these commits.
New Features
- Transition now provides support for in-app Predictive Back animations on Android 14 devices when used with Fragment
1.7.0-alpha05
.
Bug Fixes
- Fixed Slide Transition interruption bug. When a Slide Transition interrupted an entering transition to remove a View, it would jump to an incorrect position. (I946f8, b/297427333)
Version 1.5.0-alpha02
September 6, 2023
androidx.transition:transition:1.5.0-alpha02
and androidx.transition:transition-ktx:1.5.0-alpha02
are released. Version 1.5.0-alpha02 contains these commits.
New Features
TransitionSeekController
now allows you to set the progress as a fraction of the total duration viasetCurrentFragment()
. (aosp/2647607)TransitionSeekController
now allows observing progress when usinganimateToStart()
andanimateToEnd()
by callingaddOnProgressChangedListener
. (aosp/2647607)- Added
TransitionManager.seekTo()
to allow using Scenes for seeking Transitions. (aosp/2647607) - Added physics-based animations to seeking transitions. It uses a 1-D velocity tracker to track the progress change with
setCurrentFraction()
orsetCurrentPlayTimeMillis()
and uses it for the initial velocity ofanimateToStart
andanimateToEnd
. (aosp/2647607)
Bug Fixes
- Fixed a flicker when seeking an
AutoTransition
. (aosp/2643369) - Fixed an issue where a
Slide
transition would jump to the wrong starting position when interrupted. (aosp/2733729, b/297427333)
Dependency Update
- Transition now compiles with API 34.
Version 1.5.0-alpha01
May 10, 2023
androidx.transition:transition:1.5.0-alpha01
and androidx.transition:transition-ktx:1.5.0-alpha01
are released. This version is developed in an internal branch.
New Features
- Transitions support seeking on API 34 and above. A new API was added to
TransitionManager
,controlDelayedTransition()
, which returns aTransisionSeekController
that allows seeking the Transition.
API Changes
TransitionManager
has a new method,controlDelayedTransition()
, that allows applications to control the progress of transition animations on API 34+. The returnedTransitionSeekController
lets the developer know when the transition is ready for seeking, the duration of the animation, and allows setting the current time of the animation. Only Transitions that overrideisSeekable()
to return true are supported bycontrolDelayedTransition()
.- Transitions have a new method,
getRootTransition()
, that returns the Transition containing the current Transition or the current Transition if it isn't contained by any other Transition. This can be useful if the developer needs to have listeners for when the entire Transition starts or ends. TransitionListeners
now have newonTransitionStart()
andonTransitionEnd()
listeners that allow the developer to know whether the transition is starting or ending going in reverse or not. This can be important for developing seekable transitions that haveTransitionListeners
.
Bug Fixes
- Transitions now copy their
TransitionListeners
when they are cloned. This means that adding new listeners duringcreateAnimator()
will not affect the root Transition.
Version 1.4.1
Version 1.4.1
April 21, 2021
androidx.transition:transition:1.4.1
and androidx.transition:transition-ktx:1.4.1
are released. Version 1.4.1 contains these commits.
Bug Fixes
- Fixed an issue where starting a
Transition
in one container would inadvertently pause other running transitions in separate containers, causing those other transitions to never finish. (aosp/1664439, b/182845041)
Version 1.4.0
Version 1.4.0
January 27, 2021
androidx.transition:transition:1.4.0
and androidx.transition:transition-ktx:1.4.0
are released. Version 1.4.0 contains these commits.
Major changes since 1.3.0
- The
transition-ktx
artifact introduces Kotlin extensions for adding listeners to AndroidXTransition
instances. (b/138870873)
Version 1.4.0-rc01
December 2, 2020
androidx.transition:transition:1.4.0-rc01
and androidx.transition:transition-ktx:1.4.0-rc01
are released with no changes from 1.4.0-beta01
. Version 1.4.0-rc01 contains these commits.
Version 1.4.0-beta01
July 22, 2020
androidx.transition:transition:1.4.0-beta01
and androidx.transition:transition-ktx:1.4.0-beta01
are released with no changes since 1.4.0-alpha01
. Version 1.4.0-beta01 contains these commits.
Version 1.4.0-alpha01
June 24, 2020
androidx.transition:transition:1.4.0-alpha01
and androidx.transition:transition-ktx:1.4.0-alpha01
are released. Version 1.4.0-alpha01 contains these commits.
New Features
- The
transition-ktx
artifact introduces Kotlin extensions for adding listeners to AndroidXTransition
instances. (b/138870873)
Version 1.3.1
Version 1.3.1
February 19, 2020
androidx.transition:transition:1.3.1
is released. Version 1.3.1 contains these commits.
Bug Fixes
- Fixed bug when some animated Views were incorrectly clipped when ChangeTransform is used (b/148798452)
Version 1.3.0
Version 1.3.0
January 22, 2020
androidx.transition:transition:1.3.0
is released. Version 1.3.0 contains these commits.
Important changes since 1.2.0
- Improvements for Fragment 1.2.0: Improved the integration with Fragment 1.2.0 to ensure that the Fragment’s View is not destroyed before the transition completes and that transitions are cancelled at the appropriate time
Version 1.3.0-rc02
December 4, 2019
androidx.transition:transition:1.3.0-rc02
is released. Version 1.3.0-rc02 contains these commits.
Bug fixes
- Fixed an issue where Views were incorrectly marked
INVISIBLE
after popping a hidden Fragment. (b/70793925)
Version 1.3.0-rc01
October 23, 2019
androidx.transition:transition:1.3.0-rc01
is released with no changes since 1.3.0-beta01
. Version 1.3.0-rc01 contains these commits.
Version 1.3.0-beta01
October 9, 2019
androidx.transition:transition:1.3.0-beta01
is released. Version 1.3.0-beta01 contains these commits.
New features
- Improved the integration with Fragment
1.2.0-beta01
to ensure that the Fragment’s View is not destroyed before the transition completes and that transitions are cancelled at the appropriate time. (aosp/1119841)
Version 1.2.0
Version 1.2.0
October 9, 2019
androidx.transition:transition:1.2.0
is released with no changes from 1.2.0-rc01 . Version 1.2.0 contains these commits.
Important changes since version 1.1.0
This version should be used if you're targeting API level 29. Otherwise, some of the transitions will not work properly. Instead of the reflection calls, this version uses the new public methods added in API Level 29. It is a part of our restrictions on non-SDK interfaces effort.
Version 1.2.0-rc01
September 5, 2019
androidx.transition:transition:1.2.0-rc01
is released with no changes since version 1.2.0-beta01
. The commits included in this version can be found here.
Version 1.2.0-beta01
July 2, 2019
androidx.transition:transition:1.2.0-beta01
is released. The commits included in this version can be found here.
New features
- This version should be used if you are specifying 29 as a
targetSdkVersion
. Otherwise, some of the transitions will not work properly. Instead of the reflection calls, this version uses the new public methods added in API Level 29. It is a part of our restrictions on non-SDK interfaces effort.
Version 1.2.0-alpha01
May 7, 2019
androidx.transition:transition:1.2.0-alpha01
is released.
New features
- This version should be used if you are specifying Q as a
targetSdkVersion
. Otherwise, some of the transitions will not work properly. Instead of the reflection calls, this version uses the new public methods added in Q. It is a part of our restrictions on non-SDK interfaces effort.
Version 1.1.0
Version 1.1.0
July 2, 2019
androidx.transition:transition:1.1.0
is released with no changes from 1.1.0-rc02
. The commits included in this version can be found here.
Version 1.1.0-rc02
June 5, 2019
androidx.transition:transition:1.1.0-rc02
is released. The commits included in this version can be found here.
Bug fixes
- Fix for
TransitionManager.endTransitions()
to correctly work with dependent transitions. (aosp/946400)
Version 1.1.0-rc01
May 7, 2019
androidx.transition:transition:1.1.0-rc01
is released. The commits included in this version can be found here.
Version 1.1.0-beta01
April 3, 2019
androidx.transition:transition:1.1.0-beta01
is released. The commits included in this version can be found here.
Bug fixes
- Fixed
ViewGroupOverlay
caching bug inVisibility
, occurring on API Level 17 and lower (aosp/937350)
Version 1.1.0-alpha02
March 13, 2019
androidx.transition:transition:1.1.0-alpha02
is released. The full list of commits included in this version can be found here.
API changes
- The method parameter’s type of
Scene.getCurrentScene()
was changed fromView
toViewGroup
.
Bug fixes
SidePropagation
doesn’t work when an additional delay provided viasetStartDelay()
(b/119839526).ChangeImageTransform
applies wrong matrix when interrupted before API 21 (b/123226255).ChangeTransform
works incorrectly in some cases before API 21 (b/125777978).
Version 1.1.0-alpha01
December 3, 2018
API changes
- aosp/807055:
Scene.getCurrentScene(View)
method made public. It allows you to write a custom conditional logic depending on a current scene.
Bug fixes
- Fixed crash when using
TransitionManager
to collapse/expand item inRecyclerView
(b/37129527). - Fixed incorrect animation when two Visibility transitions applied (b/62629600).
- Allow override values like duration and interpolator for TransitionSet’s children (b/64644617).
- Many other minor bugs fixed.