---
title: "animateRectAsState"
description: "Fire-and-forget animation function for [Rect]. This Composable function is overloaded for
different parameter types such as [Dp], [Color][androidx.compose.ui.graphics.Color], [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.

[animateRectAsState] returns a [State] object. The value of the state object will continuously be
updated by the animation until the animation finishes.

Note, [animateRectAsState] cannot be canceled/stopped without removing this composable function
from the tree. See [Animatable] for cancelable animations.

val bounds: Rect by animateRectAsState( if (enabled) Rect(0f, 0f, 100f, 100f) else Rect(8f, 8f,
80f, 80f))"
type: "composable"
---

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


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

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


```kotlin
@Composable
public fun animateRectAsState(
    targetValue: Rect,
    animationSpec: AnimationSpec<Rect> = rectDefaultSpring,
    label: String = "RectAnimation",
    finishedListener: ((Rect) -> Unit)? = null,
): State<Rect>
```


Fire-and-forget animation function for `Rect`. This Composable function is overloaded for
different parameter types such as `Dp`, `Color`, `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.

`animateRectAsState` returns a `State` object. The value of the state object will continuously be
updated by the animation until the animation finishes.

Note, `animateRectAsState` cannot be canceled/stopped without removing this composable function
from the tree. See `Animatable` for cancelable animations.

val bounds: Rect by animateRectAsState( if (enabled) Rect(0f, 0f, 100f, 100f) else Rect(8f, 8f,
80f, 80f))

#### Parameters

| | |
| --- | --- |
| targetValue | Target value of the animation |
| animationSpec | The animation that will be used to change the value through time. Physics animation will be used by default. |
| 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` 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.

```kotlin
@Composable
public fun animateRectAsState(
    targetValue: Rect,
    animationSpec: AnimationSpec<Rect> = rectDefaultSpring,
    finishedListener: ((Rect) -> Unit)? = null,
): State<Rect>
```



