<html devsite="true">
  <head>
    <title>SuspendAnimationKt</title>
{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %}
{% include "_shared/_reference-head-tags.html" %}
  </head>
  <body>
    <h1>SuspendAnimationKt</h1>
    <p>
      <pre>public final class <a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html">SuspendAnimationKt</a></pre>
    </p>
    <hr>
    <h2>Summary</h2>
    <div class="devsite-table-wrapper">
      <table class="responsive">
        <colgroup>
          <col width="40%">
          <col>
        </colgroup>
        <thead>
          <tr>
            <th colspan="100%"><h3>Public methods</h3></th>
          </tr>
        </thead>
        <tbody class="list">
          <tr>
            <td><code>static&nbsp;final void</code></td>
            <td>
              <div><code><a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animate</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;initialValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;targetValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;initialVelocity,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationSpec.html">AnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>&gt;&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</code></div>
              <p>Target based animation that animates from the given <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">initialValue</a></code> towards the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">targetValue</a></code>, with an optional <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">initialVelocity</a></code>.</p>
            </td>
          </tr>
          <tr>
            <td><code>static&nbsp;final void</code></td>
            <td>
              <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;V&nbsp;extends&nbsp;<a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a>&gt; <a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animate</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/TwoWayConverter.html">TwoWayConverter</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;&nbsp;typeConverter,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;initialValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;targetValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;T&nbsp;initialVelocity,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationSpec.html">AnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> value,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> velocity,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</code></div>
              <p>Target based animation for animating any data type <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">T</a></code>, so long as <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">T</a></code> can be converted to an <code><a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a></code> using <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">typeConverter</a></code>.</p>
            </td>
          </tr>
          <tr>
            <td><code>static&nbsp;final void</code></td>
            <td>
              <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;V&nbsp;extends&nbsp;<a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a>&gt; <a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html">SuspendAnimationKt</a>.<a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">animateDecay</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;sequentialAnimation,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function1&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationScope.html">AnimationScope</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</code></div>
              <p>Decay animation that slows down from the current velocity and value captured in <code><a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a></code> until the velocity reaches 0.</p>
            </td>
          </tr>
          <tr>
            <td><code>static&nbsp;final void</code></td>
            <td>
              <div><code><a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">animateDecay</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;initialValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;initialVelocity,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/FloatDecayAnimationSpec.html">FloatDecayAnimationSpec</a>&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</code></div>
              <p>Decay animation that slows down from the given <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">initialVelocity</a></code> starting at <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">initialValue</a></code> until the velocity reaches 0.</p>
            </td>
          </tr>
          <tr>
            <td><code>static&nbsp;final void</code></td>
            <td>
              <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;V&nbsp;extends&nbsp;<a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a>&gt; <a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html">SuspendAnimationKt</a>.<a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">animateTo</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;targetValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationSpec.html">AnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;sequentialAnimation,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function1&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationScope.html">AnimationScope</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</code></div>
              <p>Target based animation that takes the value and velocity from the <code><a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a></code> as the starting condition, and animate to the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">targetValue</a></code>, using the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">animationSpec</a></code>.</p>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="list">
      <h2>Public methods</h2>
      <div class="api-item"><a name="animate(kotlin.Float, kotlin.Float, kotlin.Float, androidx.compose.animation.core.AnimationSpec, kotlin.Function2)"></a><a name="animate-kotlin.Float-kotlin.Float-kotlin.Float-androidx.compose.animation.core.AnimationSpec-kotlin.Function2-"></a><a name="animate"></a>
        <h3 class="api-name" id="animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animate</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;void&nbsp;<a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animate</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;initialValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;targetValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;initialVelocity,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationSpec.html">AnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>&gt;&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</pre>
        <p>Target based animation that animates from the given <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">initialValue</a></code> towards the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">targetValue</a></code>, with an optional <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">initialVelocity</a></code>. The <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">initialVelocity</a></code> defaults to 0f. By default, a <code><a href="/reference/androidx/compose/animation/core/package-summary.html#spring(kotlin.Float,kotlin.Float,kotlin.Any)">spring</a></code> will be used for the animation. An alternative <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animationSpec</a></code> can be provided to replace the default <code><a href="/reference/androidx/compose/animation/core/package-summary.html#spring(kotlin.Float,kotlin.Float,kotlin.Any)">spring</a></code>. On each frame, the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">block</a></code> will be invoked with up-to-date value and velocity.</p>
        <p>This is a convenient method for Float animation. If there's a need to access more info related to the animation such as start time, target, etc, consider using <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">AnimationState.animateTo</a></code>. To animate non-<code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a></code> data types, consider the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animate</a></code> overload/variant for generic types.</p>
        <pre class="prettyprint">
import androidx.compose.animation.core.animate
import androidx.compose.animation.core.infiniteRepeatable
import androidx.compose.animation.core.tween
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Icon
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.graphics.graphicsLayer

@Composable
fun InfiniteAnimationDemo() {
    // Create a mutable state for alpha, and update it in the animation.
    val alpha = remember { mutableStateOf(1f) }
    LaunchedEffect(Unit) {
        // Animate from 1f to 0f using an infinitely repeating animation
        animate(
            initialValue = 1f,
            targetValue = 0f,
            animationSpec = infiniteRepeatable(
                animation = tween(1000),
                repeatMode = RepeatMode.Reverse
            )
        ) { value, /* velocity */ _ -&gt;
            // Update alpha mutable state with the current animation value
            alpha.value = value
        }
    }
    Box(Modifier.fillMaxSize()) {
        Icon(
            Icons.Filled.Favorite,
            contentDescription = null,
            modifier = Modifier.align(Alignment.Center)
                .graphicsLayer(
                    scaleX = 3.0f,
                    scaleY = 3.0f,
                    alpha = alpha.value
                ),
            tint = Color.Red
        )
    }
}</pre>
        <div class="devsite-table-wrapper">
          <table class="responsive">
            <colgroup>
              <col width="40%">
              <col>
            </colgroup>
            <thead>
              <tr>
                <th colspan="100%">See also</th>
              </tr>
            </thead>
            <tbody class="list">
              <tr>
                <td><code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">animateTo</a></code></td>
                <td></td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="api-item"><a name="animate(androidx.compose.animation.core.TwoWayConverter, kotlin.Any, kotlin.Any, kotlin.Any, androidx.compose.animation.core.AnimationSpec, kotlin.Function2)"></a><a name="animate-androidx.compose.animation.core.TwoWayConverter-kotlin.Any-kotlin.Any-kotlin.Any-androidx.compose.animation.core.AnimationSpec-kotlin.Function2-"></a><a name="animate"></a>
        <h3 class="api-name" id="animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animate</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;void&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;V&nbsp;extends&nbsp;<a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a>&gt; <a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animate</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/TwoWayConverter.html">TwoWayConverter</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;&nbsp;typeConverter,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;initialValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;targetValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;T&nbsp;initialVelocity,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationSpec.html">AnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> value,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> velocity,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</pre>
        <p>Target based animation for animating any data type <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">T</a></code>, so long as <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">T</a></code> can be converted to an <code><a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a></code> using <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">typeConverter</a></code>. The animation will start from the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">initialValue</a></code> and animate to the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">targetValue</a></code> value. The <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">initialVelocity</a></code> will be derived from an all-0 <code><a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a></code> unless specified. <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)">animationSpec</a></code> can be provided to create a specific look and feel for the animation. By default, a <code><a href="/reference/androidx/compose/animation/core/package-summary.html#spring(kotlin.Float,kotlin.Float,kotlin.Any)">spring</a></code> will be used.</p>
        <p>This is a convenient method for target-based animation. If there's a need to access more info related to the animation such as start time, target, etc, consider using <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">AnimationState.animateTo</a></code>.</p>
        <div class="devsite-table-wrapper">
          <table class="responsive">
            <colgroup>
              <col width="40%">
              <col>
            </colgroup>
            <thead>
              <tr>
                <th colspan="100%">See also</th>
              </tr>
            </thead>
            <tbody class="list">
              <tr>
                <td><code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">animateTo</a></code></td>
                <td></td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="api-item"><a name="(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec, kotlin.Boolean, kotlin.Function1)"></a><a name="-androidx.compose.animation.core.AnimationState-.animateDecay-androidx.compose.animation.core.DecayAnimationSpec-kotlin.Boolean-kotlin.Function1-"></a><a name="animatedecay"></a>
        <h3 class="api-name" id="(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">SuspendAnimationKt.animateDecay</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;void&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;V&nbsp;extends&nbsp;<a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a>&gt; <a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html">SuspendAnimationKt</a>.<a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">animateDecay</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;sequentialAnimation,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function1&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationScope.html">AnimationScope</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</pre>
        <p>Decay animation that slows down from the current velocity and value captured in <code><a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a></code> until the velocity reaches 0. During the animation, the given <code><a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a></code> will be updated with the up-to-date value/velocity, frame time, etc. This is often used to animate the result of a fling gesture.</p>
        <p><code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">animationSpec</a></code> defines the decay animation that will be used for this animation. Some options for <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">animationSpec</a></code> include: <code><a href="/reference/androidx/compose/animation/package-summary.html#splineBasedDecay(androidx.compose.ui.unit.Density)">splineBasedDecay</a></code> and <code><a href="/reference/androidx/compose/animation/core/package-summary.html#exponentialDecay(kotlin.Float,kotlin.Float)">exponentialDecay</a></code>.</p>
        <p>During the animation, <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">block</a></code> will be invoked on every frame, and the <code><a href="/reference/androidx/compose/animation/core/AnimationScope.html">AnimationScope</a></code> will be checked against cancellation before the animation continues. To cancel the animation from the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">block</a></code>, simply call <code><a href="/reference/androidx/compose/animation/core/AnimationScope.html#cancelAnimation()">AnimationScope.cancelAnimation</a></code>.  After <code><a href="/reference/androidx/compose/animation/core/AnimationScope.html#cancelAnimation()">AnimationScope.cancelAnimation</a></code> is called, <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">block</a></code> will not be invoked again. The animation loop will exit after the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">block</a></code> returns. All the animation related info can be accessed via <code><a href="/reference/androidx/compose/animation/core/AnimationScope.html">AnimationScope</a></code>.</p>
        <p><code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">sequentialAnimation</a></code> indicates whether the animation should use the <code><a href="/reference/androidx/compose/animation/core/AnimationState.html#lastFrameTimeNanos()">AnimationState.lastFrameTimeNanos</a></code> as the starting time (if true), or start in a new frame. By default, <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)">sequentialAnimation</a></code> is false, to start the animation in a few frame. In cases where an on-going animation is interrupted and a new animation is started to carry over the momentum, using the interruption time (captured in <code><a href="/reference/androidx/compose/animation/core/AnimationState.html#lastFrameTimeNanos()">AnimationState.lastFrameTimeNanos</a></code> creates a smoother animation.</p>
      </div>
      <div class="api-item"><a name="animateDecay(kotlin.Float, kotlin.Float, androidx.compose.animation.core.FloatDecayAnimationSpec, kotlin.Function2)"></a><a name="animateDecay-kotlin.Float-kotlin.Float-androidx.compose.animation.core.FloatDecayAnimationSpec-kotlin.Function2-"></a><a name="animatedecay"></a>
        <h3 class="api-name" id="animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">animateDecay</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;void&nbsp;<a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">animateDecay</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;initialValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;initialVelocity,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/FloatDecayAnimationSpec.html">FloatDecayAnimationSpec</a>&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Float.html">Float</a>,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</pre>
        <p>Decay animation that slows down from the given <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">initialVelocity</a></code> starting at <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">initialValue</a></code> until the velocity reaches 0. This is often used after a fling gesture.</p>
        <p><code><a href="/reference/androidx/compose/animation/core/package-summary.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">animationSpec</a></code> defines the decay animation that will be used for this animation. Some options for this <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">animationSpec</a></code> include: <code><a href="/reference/androidx/compose/animation/package-summary.html#splineBasedDecay(androidx.compose.ui.unit.Density)">splineBasedDecay</a></code> and <code><a href="/reference/androidx/compose/animation/core/package-summary.html#exponentialDecay(kotlin.Float,kotlin.Float)">exponentialDecay</a></code>. <code><a href="/reference/androidx/compose/animation/core/package-summary.html#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)">block</a></code> will be invoked on each animation frame with up-to-date value and velocity.</p>
        <p>This is a convenient method for decay animation. If there's a need to access more info related to the animation such as start time, target, etc, consider using <code><a href="/reference/[JVM root]/package-summary.html">AnimationState.animateDecay</a></code>.</p>
        <div class="devsite-table-wrapper">
          <table class="responsive">
            <colgroup>
              <col width="40%">
              <col>
            </colgroup>
            <thead>
              <tr>
                <th colspan="100%">See also</th>
              </tr>
            </thead>
            <tbody class="list">
              <tr>
                <td><code><a href="/reference/[JVM root]/package-summary.html">[JVM root]</a></code></td>
                <td>
                  <p><code><a href="/reference/[JVM root]/package-summary.html">AnimationState.animateDecay</a></code></p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="api-item"><a name="(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any, androidx.compose.animation.core.AnimationSpec, kotlin.Boolean, kotlin.Function1)"></a><a name="-androidx.compose.animation.core.AnimationState-.animateTo-kotlin.Any-androidx.compose.animation.core.AnimationSpec-kotlin.Boolean-kotlin.Function1-"></a><a name="animateto"></a>
        <h3 class="api-name" id="(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">SuspendAnimationKt.animateTo</h3>
        <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;void&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;V&nbsp;extends&nbsp;<a href="/reference/androidx/compose/animation/core/AnimationVector.html">AnimationVector</a>&gt; <a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html">SuspendAnimationKt</a>.<a href="/reference/androidx/compose/animation/core/SuspendAnimationKt.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">animateTo</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;targetValue,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationSpec.html">AnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;animationSpec,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;sequentialAnimation,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function1&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/AnimationScope.html">AnimationScope</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&gt;,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</pre>
        <p>Target based animation that takes the value and velocity from the <code><a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a></code> as the starting condition, and animate to the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">targetValue</a></code>, using the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">animationSpec</a></code>. During the animation, the given <code><a href="/reference/androidx/compose/animation/core/AnimationState.html">AnimationState</a></code> will be updated with the up-to-date value/velocity, frame time, etc.</p>
        <p><code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">sequentialAnimation</a></code> indicates whether the animation should use the <code><a href="/reference/androidx/compose/animation/core/AnimationState.html#lastFrameTimeNanos()">AnimationState.lastFrameTimeNanos</a></code> as the starting time (if true), or start in a new frame. By default, <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">sequentialAnimation</a></code> is false, to start the animation in a few frame. In cases where an on-going animation is interrupted and a new animation is started to carry over the momentum, using the interruption time (captured in <code><a href="/reference/androidx/compose/animation/core/AnimationState.html#lastFrameTimeNanos()">AnimationState.lastFrameTimeNanos</a></code> creates a smoother animation.</p>
        <p><code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">block</a></code> will be invoked on every frame, and the <code><a href="/reference/androidx/compose/animation/core/AnimationScope.html">AnimationScope</a></code> will be checked against cancellation before the animation continues. To cancel the animation from the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">block</a></code>, simply call <code><a href="/reference/androidx/compose/animation/core/AnimationScope.html#cancelAnimation()">AnimationScope.cancelAnimation</a></code>.  After <code><a href="/reference/androidx/compose/animation/core/AnimationScope.html#cancelAnimation()">AnimationScope.cancelAnimation</a></code> is called, <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">block</a></code> will not be invoked again. The animation loop will exit after the <code><a href="/reference/androidx/compose/animation/core/package-summary.html#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)">block</a></code> returns. All the animation related info can be accessed via <code><a href="/reference/androidx/compose/animation/core/AnimationScope.html">AnimationScope</a></code>.</p>
        <pre class="prettyprint">
import androidx.compose.animation.core.AnimationState
import androidx.compose.animation.core.animateTo
import androidx.compose.animation.core.spring
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.remember

@Composable
fun simpleAnimate(
    target: Float,
): Float {
    // Create an AnimationState to be updated by the animation.
    val animationState = remember { AnimationState(target) }

    // Launch the suspend animation into the composition's CoroutineContext, and pass
    // `target` to LaunchedEffect so that when`target` changes the old animation job is
    // canceled, and a new animation is created with a new target.
    LaunchedEffect(target) {
        // This starts an animation that updates the animationState on each frame
        animationState.animateTo(
            targetValue = target,
            // Use a low stiffness spring. This can be replaced with any type of `AnimationSpec`
            animationSpec = spring(stiffness = Spring.StiffnessLow),
            // If the previous animation was interrupted (i.e. not finished), configure the
            // animation as a sequential animation to continue from the time the animation was
            // interrupted.
            sequentialAnimation = !animationState.isFinished
        )
        // When the function above returns, the animation has finished.
    }
    // Return the value updated by the animation.
    return animationState.value
}</pre>
      </div>
    </div>
  </body>
</html>
