# androidx.transition

*** ** * ** ***

AndroidX Transition Library provides Transition API back to API level 14.

Transition API allows you to animate various kinds of layout changes automatically. For example, you can present a change of `https://developer.android.com/reference/android/view/View.html#setVisibility(int)` as fade in / out animation like below:

```kotlin
    TextView message = findViewById(R.id.message);
    ViewGroup container = findViewById(R.id.container);
    Fade fade = new Fade();

    TransitionManager.beginDelayedTransition(container, fade);
    message.setVisibility(View.INVISIBLE);
```

| See also |
|---|---|
| `https://developer.android.com/training/transitions` | [Transition API Guide](https://developer.android.com/training/transitions) |

## Interfaces

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/transition/Transition.TransitionListener` | A transition listener receives notifications from a transition. |
| `https://developer.android.com/reference/kotlin/androidx/transition/TransitionSeekController` | Returned from `https://developer.android.com/reference/kotlin/androidx/transition/TransitionManager#controlDelayedTransition(android.view.ViewGroup,androidx.transition.Transition)` to allow manually controlling the animations within a Transition using `https://developer.android.com/reference/kotlin/androidx/transition/TransitionSeekController#setCurrentPlayTimeMillis(long)`. |

## Classes

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/transition/ArcMotion` | A PathMotion that generates a curved path along an arc on an imaginary circle containing the two points. |
| `https://developer.android.com/reference/kotlin/androidx/transition/AutoTransition` | Utility class for creating a default transition that automatically fades, moves, and resizes views during a scene change. |
| `https://developer.android.com/reference/kotlin/androidx/transition/ChangeBounds` | This transition captures the layout bounds of target views before and after the scene change and animates those changes during the transition. |
| `https://developer.android.com/reference/kotlin/androidx/transition/ChangeClipBounds` | ChangeClipBounds captures the `https://developer.android.com/reference/android/view/View.html#getClipBounds()` before and after the scene change and animates those changes during the transition. |
| `https://developer.android.com/reference/kotlin/androidx/transition/ChangeImageTransform` | This Transition captures an ImageView's matrix before and after the scene change and animates it during the transition. |
| `https://developer.android.com/reference/kotlin/androidx/transition/ChangeScroll` | This transition captures the scroll properties of targets before and after the scene change and animates any changes. |
| `https://developer.android.com/reference/kotlin/androidx/transition/ChangeTransform` | This Transition captures scale and rotation for Views before and after the scene change and animates those changes during the transition. |
| `https://developer.android.com/reference/kotlin/androidx/transition/CircularPropagation` | A propagation that varies with the distance to the epicenter of the Transition or center of the scene if no epicenter exists. |
| `https://developer.android.com/reference/kotlin/androidx/transition/Explode` | This transition tracks changes to the visibility of target views in the start and end scenes and moves views in or out from the edges of the scene. |
| `https://developer.android.com/reference/kotlin/androidx/transition/Fade` | This transition tracks changes to the visibility of target views in the start and end scenes and fades views in or out when they become visible or non-visible. |
| `https://developer.android.com/reference/kotlin/androidx/transition/PathMotion` | This base class can be extended to provide motion along a Path to Transitions. |
| `https://developer.android.com/reference/kotlin/androidx/transition/PatternPathMotion` | A PathMotion that takes a Path pattern and applies it to the separation between two points. |
| `https://developer.android.com/reference/kotlin/androidx/transition/Scene` | A scene represents the collection of values that various properties in the View hierarchy will have when the scene is applied. |
| `https://developer.android.com/reference/kotlin/androidx/transition/SidePropagation` | A `TransitionPropagation` that propagates based on the distance to the side and, orthogonally, the distance to epicenter. |
| `https://developer.android.com/reference/kotlin/androidx/transition/Slide` | This transition tracks changes to the visibility of target views in the start and end scenes and moves views in or out from one of the edges of the scene. |
| `https://developer.android.com/reference/kotlin/androidx/transition/Transition` | A Transition holds information about animations that will be run on its targets during a scene change. |
| `https://developer.android.com/reference/kotlin/androidx/transition/Transition.EpicenterCallback` | Class to get the epicenter of Transition. |
| `https://developer.android.com/reference/kotlin/androidx/transition/TransitionInflater` | This class inflates scenes and transitions from resource files. |
| `https://developer.android.com/reference/kotlin/androidx/transition/TransitionListenerAdapter` | This adapter class provides empty implementations of the methods from `https://developer.android.com/reference/kotlin/androidx/transition/Transition.TransitionListener`. |
| `https://developer.android.com/reference/kotlin/androidx/transition/TransitionManager` | This class manages the set of transitions that fire when there is a change of `https://developer.android.com/reference/kotlin/androidx/transition/Scene`. |
| `https://developer.android.com/reference/kotlin/androidx/transition/TransitionPropagation` | Extend `TransitionPropagation` to customize start delays for Animators created in `https://developer.android.com/reference/kotlin/androidx/transition/Transition#createAnimator(android.view.ViewGroup,androidx.transition.TransitionValues,androidx.transition.TransitionValues)`. |
| `https://developer.android.com/reference/kotlin/androidx/transition/TransitionSet` | A TransitionSet is a parent of child transitions (including other TransitionSets). |
| `https://developer.android.com/reference/kotlin/androidx/transition/TransitionValues` | Data structure which holds cached values for the transition. |
| `https://developer.android.com/reference/kotlin/androidx/transition/Visibility` | This transition tracks changes to the visibility of target views in the start and end scenes. |
| `https://developer.android.com/reference/kotlin/androidx/transition/VisibilityPropagation` | Base class for `TransitionPropagation`s that care about View Visibility and the center position of the View. |

## Extension functions summary

|---|---|
| `inline https://developer.android.com/reference/kotlin/androidx/transition/Transition.TransitionListener` | `https://developer.android.com/reference/kotlin/androidx/transition/Transition.https://developer.android.com/reference/kotlin/androidx/transition/package-summary#(androidx.transition.Transition).addListener(kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)( crossinline onEnd: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, crossinline onStart: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, crossinline onCancel: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, crossinline onResume: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, crossinline onPause: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Add a listener to this Transition using the provided actions. |
| `inline https://developer.android.com/reference/kotlin/androidx/transition/Transition.TransitionListener` | `https://developer.android.com/reference/kotlin/androidx/transition/Transition.https://developer.android.com/reference/kotlin/androidx/transition/package-summary#(androidx.transition.Transition).doOnCancel(kotlin.Function1)( crossinline action: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Add an action which will be invoked when this transition has been cancelled. |
| `inline https://developer.android.com/reference/kotlin/androidx/transition/Transition.TransitionListener` | `https://developer.android.com/reference/kotlin/androidx/transition/Transition.https://developer.android.com/reference/kotlin/androidx/transition/package-summary#(androidx.transition.Transition).doOnEnd(kotlin.Function1)(crossinline action: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Add an action which will be invoked when this transition has ended. |
| `inline https://developer.android.com/reference/kotlin/androidx/transition/Transition.TransitionListener` | `https://developer.android.com/reference/kotlin/androidx/transition/Transition.https://developer.android.com/reference/kotlin/androidx/transition/package-summary#(androidx.transition.Transition).doOnPause(kotlin.Function1)(crossinline action: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Add an action which will be invoked when this transition has been paused. |
| `inline https://developer.android.com/reference/kotlin/androidx/transition/Transition.TransitionListener` | `https://developer.android.com/reference/kotlin/androidx/transition/Transition.https://developer.android.com/reference/kotlin/androidx/transition/package-summary#(androidx.transition.Transition).doOnResume(kotlin.Function1)( crossinline action: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Add an action which will be invoked when this transition has resumed after a pause. |
| `inline https://developer.android.com/reference/kotlin/androidx/transition/Transition.TransitionListener` | `https://developer.android.com/reference/kotlin/androidx/transition/Transition.https://developer.android.com/reference/kotlin/androidx/transition/package-summary#(androidx.transition.Transition).doOnStart(kotlin.Function1)(crossinline action: (transition: https://developer.android.com/reference/kotlin/androidx/transition/Transition) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Add an action which will be invoked when this transition has started. |

## Extension functions

### Transition.addListener

Artifact: [androidx.transition:transition-ktx](https://developer.android.com/jetpack/androidx/releases/transition) [View Source](https://cs.android.com/search?q=file:androidx/transition/Transition.kt+function:addListener) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/transition#1.4.0)

```
inline fun Transition.addListener(
    crossinline onEnd: (transition: Transition) -> Unit = {},
    crossinline onStart: (transition: Transition) -> Unit = {},
    crossinline onCancel: (transition: Transition) -> Unit = {},
    crossinline onResume: (transition: Transition) -> Unit = {},
    crossinline onPause: (transition: Transition) -> Unit = {}
): Transition.TransitionListener
```

Add a listener to this Transition using the provided actions.

### Transition.doOnCancel

Artifact: [androidx.transition:transition-ktx](https://developer.android.com/jetpack/androidx/releases/transition) [View Source](https://cs.android.com/search?q=file:androidx/transition/Transition.kt+function:doOnCancel) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/transition#1.4.0)

```
inline fun Transition.doOnCancel(
    crossinline action: (transition: Transition) -> Unit
): Transition.TransitionListener
```

Add an action which will be invoked when this transition has been cancelled.

### Transition.doOnEnd

Artifact: [androidx.transition:transition-ktx](https://developer.android.com/jetpack/androidx/releases/transition) [View Source](https://cs.android.com/search?q=file:androidx/transition/Transition.kt+function:doOnEnd) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/transition#1.4.0)

```
inline fun Transition.doOnEnd(crossinline action: (transition: Transition) -> Unit): Transition.TransitionListener
```

Add an action which will be invoked when this transition has ended.

### Transition.doOnPause

Artifact: [androidx.transition:transition-ktx](https://developer.android.com/jetpack/androidx/releases/transition) [View Source](https://cs.android.com/search?q=file:androidx/transition/Transition.kt+function:doOnPause) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/transition#1.4.0)

```
inline fun Transition.doOnPause(crossinline action: (transition: Transition) -> Unit): Transition.TransitionListener
```

Add an action which will be invoked when this transition has been paused.

### Transition.doOnResume

Artifact: [androidx.transition:transition-ktx](https://developer.android.com/jetpack/androidx/releases/transition) [View Source](https://cs.android.com/search?q=file:androidx/transition/Transition.kt+function:doOnResume) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/transition#1.4.0)

```
inline fun Transition.doOnResume(
    crossinline action: (transition: Transition) -> Unit
): Transition.TransitionListener
```

Add an action which will be invoked when this transition has resumed after a pause.

### Transition.doOnStart

Artifact: [androidx.transition:transition-ktx](https://developer.android.com/jetpack/androidx/releases/transition) [View Source](https://cs.android.com/search?q=file:androidx/transition/Transition.kt+function:doOnStart) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/transition#1.4.0)

```
inline fun Transition.doOnStart(crossinline action: (transition: Transition) -> Unit): Transition.TransitionListener
```

Add an action which will be invoked when this transition has started.