animateColorAsState
@Composable
public fun animateColorAsState(
targetValue: Color,
animationSpec: AnimationSpec<Color> = colorDefaultSpring,
label: String = "ColorAnimation",
finishedListener: ((Color) -> Unit)? = null,
): State<Color>
Fire-and-forget animation function for Color. This Composable function is overloaded for
different parameter types such as Dp, Float, Int, Size, 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.
animateColorAsState returns a State object. The value of the state object will continuously
be updated by the animation until the animation finishes.
Note, animateColorAsState 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, spring by default |
| label | An optional label to differentiate from other animations in Android Studio. |
| finishedListener | An optional listener to get notified when the animation is finished. |
Deprecated animate*AsState APIs now have a new label parameter added.
@Composable
public fun animateColorAsState(
targetValue: Color,
animationSpec: AnimationSpec<Color> = colorDefaultSpring,
finishedListener: ((Color) -> Unit)? = null,
): State<Color>
Code Examples
ColorAnimationSample
@Composable
fun ColorAnimationSample() {
@Composable
fun ColorAnimation(primary: Boolean) {
// Animates to primary or secondary color, depending on whether [primary] is true
// [animateState] returns the current animation value in a State<Color> in this example. We
// use the State<Color> object as a property delegate here.
val color: Color by
animateColorAsState(
if (primary) MaterialTheme.colors.primary else MaterialTheme.colors.secondary
)
Box(modifier = Modifier.background(color))
}
}
