animateOffsetAsState
Composable Function
Common
@Composable
public fun animateOffsetAsState(
targetValue: Offset,
animationSpec: AnimationSpec<Offset> = offsetDefaultSpring,
label: String = "OffsetAnimation",
finishedListener: ((Offset) -> Unit)? = null,
): State<Offset>
Fire-and-forget animation function for Offset. This Composable function is overloaded for
different parameter types such as Dp, Color, Float,
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.
animateOffsetAsState returns a State object. The value of the state object will continuously
be updated by the animation until the animation finishes.
Note, animateOffsetAsState cannot be canceled/stopped without removing this composable function
from the tree. See Animatable for cancelable animations.
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. |
Common
Deprecated animate*AsState APIs now have a new label parameter added.
@Composable
public fun animateOffsetAsState(
targetValue: Offset,
animationSpec: AnimationSpec<Offset> = offsetDefaultSpring,
finishedListener: ((Offset) -> Unit)? = null,
): State<Offset>
Code Examples
AnimateOffsetSample
@Composable
@Suppress("UNUSED_VARIABLE")
fun AnimateOffsetSample() {
@Composable
fun OffsetAnimation(selected: Boolean) {
// Animates the offset depending on the selected flag.
// [animateOffsetAsState] returns a State<Offset> object. The value of the State object is
// updated by the animation. Here we use that State<Offset> as a property delegate.
val offset: Offset by
animateOffsetAsState(if (selected) Offset(0f, 0f) else Offset(20f, 20f))
// In this example, animateIntOffsetAsState returns a State<IntOffset>. The value of the
// returned
// State object is updated by the animation.
val intOffset: IntOffset by
animateIntOffsetAsState(if (selected) IntOffset(0, 0) else IntOffset(50, 50))
}
}
