<h2 id="animatevalueasstate-targetvalue-typeconverter-animationspec-visibilitythreshold-label-finishedlistener">animateValueAsState</h2>

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

```kotlin
@Composable
public fun <T, V : AnimationVector> animateValueAsState(
    targetValue: T,
    typeConverter: TwoWayConverter<T, V>,
    animationSpec: AnimationSpec<T> = remember { spring() },
    visibilityThreshold: T? = null,
    label: String = "ValueAnimation",
    finishedListener: ((T) -> Unit)? = null,
): State<T>
```

Fire-and-forget animation function for any value. This Composable function is overloaded for
different parameter types such as [Dp](/jetpack-compose/androidx.compose.ui/ui-unit/classes/Dp), [Color][androidx.compose.ui.graphics.Color], [Offset](/jetpack-compose/androidx.compose.ui/ui-geometry/classes/Offset),
etc. When the provided `targetValue` is changed, the animation will run automatically. If there
is already an animation in-flight when `targetValue` changes, the on-going animation will adjust
course to animate towards the new target value.

[animateValueAsState](/jetpack-compose/androidx.compose.animation/animation-core/composable-functions/animateValueAsState) returns a [State](/jetpack-compose/androidx.compose.runtime/runtime/interfaces/State) object. The value of the state object will continuously
be updated by the animation until the animation finishes.

Note, [animateValueAsState](/jetpack-compose/androidx.compose.animation/animation-core/composable-functions/animateValueAsState) cannot be canceled/stopped without removing this composable function
from the tree. See [Animatable](/jetpack-compose/androidx.compose.animation/animation-core/classes/Animatable) for cancelable animations.

 data class MySize(val width: Dp, val height: Dp)

#### Parameters

| | |
| --- | --- |
| targetValue | Target value of the animation |
| typeConverter | A [TwoWayConverter](/jetpack-compose/androidx.compose.animation/animation-core/interfaces/TwoWayConverter) to convert from the animation value from and to an [AnimationVector](/jetpack-compose/androidx.compose.animation/animation-core/classes/AnimationVector) |
| animationSpec | The animation that will be used to change the value through time. Physics animation will be used by default. |
| visibilityThreshold | An optional threshold to define when the animation value can be considered close enough to the targetValue to end the animation. |
| label | An optional label to differentiate from other animations in Android Studio. |
| finishedListener | An optional end listener to get notified when the animation is finished. |

#### Returns

| | |
| --- | --- |
|  | A [State](/jetpack-compose/androidx.compose.runtime/runtime/interfaces/State) object, the value of which is updated by animation. |

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

> **Deprecated** animate*AsState APIs now have a new label parameter added.

<hr class="docs-overload-divider">

<h2 id="animatevalueasstate-targetvalue-typeconverter-animationspec-visibilitythreshold-finishedlistener">animateValueAsState</h2>

```kotlin
@Composable
public fun <T, V : AnimationVector> animateValueAsState(
    targetValue: T,
    typeConverter: TwoWayConverter<T, V>,
    animationSpec: AnimationSpec<T> = remember { spring() },
    visibilityThreshold: T? = null,
    finishedListener: ((T) -> Unit)? = null,
): State<T>
```