<div class='type'>Interface</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>



```kotlin
@JvmDefaultWithCompatibility
public interface AnimatedVisibilityScope
```


This is the scope for the content of `AnimatedVisibility`. In this scope, direct and indirect
children of `AnimatedVisibility` will be able to define their own enter/exit transitions using
the built-in options via `Modifier.animateEnterExit`. They will also be able define custom
enter/exit animations using the `transition` object. `AnimatedVisibility` will ensure both custom
and built-in enter/exit animations finish before it considers itself idle, and subsequently
removes its content in the case of exit.

__Note:__ Custom enter/exit animations that are created *independent* of the
`AnimatedVisibilityScope.transition` will have no guarantee to finish when exiting, as
`AnimatedVisibility` would have no visibility of such animations.


## Functions



<h2 id="animateenterexit-enter-exit-label">animateEnterExit</h2>

```kotlin
public fun Modifier.animateEnterExit(
        enter: EnterTransition = fadeIn(),
        exit: ExitTransition = fadeOut(),
        label: String = "animateEnterExit",
    ): Modifier
```


`animateEnterExit` modifier can be used for any direct or indirect children of
`AnimatedVisibility` to create a different enter/exit animation than what's specified in
`AnimatedVisibility`. The visual effect of these children will be a combination of the
`AnimatedVisibility`'s animation and their own enter/exit animations.

`enter` and `exit` defines different `EnterTransition`s and `ExitTransition`s that will be
used for the appearance and disappearance animation. There are 4 types of `EnterTransition`
and `ExitTransition`: Fade, Expand/Shrink, Scale and Slide. The enter transitions can be
combined using `+`. Same for exit transitions. The order of the combination does not matter,
as the transition animations will start simultaneously. See `EnterTransition` and
`ExitTransition` for details on the three types of transition.

By default, the enter transition will be a `fadeIn` of the content. And the exit transition
will be fading out the content using `fadeOut`.

In some cases it may be desirable to have `AnimatedVisibility` apply no animation at all for
enter and/or exit, such that children of `AnimatedVisibility` can each have their distinct
animations. To achieve this, `EnterTransition.None` and/or `ExitTransition.None` can be used
for `AnimatedVisibility`.