<div class='type'>Composable Function</div>


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



<h2 id="animatefloat-initialvalue-targetvalue-animationspec-label">animateFloat</h2>

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


```kotlin
@Composable
public fun InfiniteTransition.animateFloat(
    initialValue: Float,
    targetValue: Float,
    animationSpec: InfiniteRepeatableSpec<Float>,
    label: String = "FloatAnimation",
): State<Float>
```


Creates an animation of Float type that runs infinitely as a part of the given
`InfiniteTransition`.

Once the animation is created, it will run from `initialValue` to `targetValue` and repeat.
Depending on the `RepeatMode` of the provided `animationSpec`, the animation could either restart
after each iteration (i.e. `RepeatMode.Restart`), or reverse after each iteration (i.e .
`RepeatMode.Reverse`).

If `initialValue` or `targetValue` is changed at any point during the animation, the animation
will be restarted with the new `initialValue` and `targetValue`. __Note__: this means continuity
will *not* be preserved.

A `label` for differentiating this animation from others in android studio.



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


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



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


<h2 id="animatefloat-initialvalue-targetvalue-animationspec">animateFloat</h2>

```kotlin
@Composable
public fun InfiniteTransition.animateFloat(
    initialValue: Float,
    targetValue: Float,
    animationSpec: InfiniteRepeatableSpec<Float>,
): State<Float>
```




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


<h2 id="animatefloat-label-targetvaluebystate">animateFloat</h2>

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


```kotlin
@Composable
public inline fun <S> Transition<S>.animateFloat(
    noinline transitionSpec: @Composable Transition.Segment<S>.() -> FiniteAnimationSpec<Float> = {
        spring()
    },
    label: String = "FloatAnimation",
    targetValueByState: @Composable (state: S) -> Float,
): State<Float>
```


Creates a Float animation as a part of the given `Transition`. This means the states of this
animation will be managed by the `Transition`.

`targetValueByState` is used as a mapping from a target state to the target value of this
animation. `Transition` will be using this mapping to determine what value to target this
animation towards. __Note__ that `targetValueByState` is a composable function. This means the
mapping function could access states, CompositionLocals, themes, etc. If the targetValue changes
outside of a `Transition` run (i.e. when the `Transition` already reached its targetState), the
`Transition` will start running again to ensure this animation reaches its new target smoothly.

An optional `transitionSpec` can be provided to specify (potentially different) animation for
each pair of initialState and targetState. `FiniteAnimationSpec` includes any non-infinite
animation, such as `tween`, `spring`, `keyframes` and even `repeatable`, but not
`infiniteRepeatable`. By default, `transitionSpec` uses a `spring` animation for all transition
destinations.


`label` is used to differentiate from other animations in the same transition in Android Studio.

#### Returns

| | |
| --- | --- |
|  | A `State` object, the value of which is updated by animation |