From f3d5dc3f035e7bf644d8db82a52ef5f53e41cb86 Mon Sep 17 00:00:00 2001 From: Jolanda Verhoef Date: Mon, 31 Mar 2025 10:17:45 +0100 Subject: [PATCH] Refactor animateFloatAsState example Refactor the animateFloatAsState example to use the lambda-based `graphicsLayer` modifier, preventing continuous recomposition during animation. --- .../example/compose/snippets/animations/AnimationSnippets.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt index 2fe06cf06..bdb82790d 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/animations/AnimationSnippets.kt @@ -280,14 +280,15 @@ private fun AnimateAsStateSimple() { // [START android_compose_animations_animate_as_state] var enabled by remember { mutableStateOf(true) } - val alpha: Float by animateFloatAsState(if (enabled) 1f else 0.5f, label = "alpha") + val animatedAlpha: Float by animateFloatAsState(if (enabled) 1f else 0.5f, label = "alpha") Box( Modifier .fillMaxSize() - .graphicsLayer(alpha = alpha) + .graphicsLayer { alpha = animatedAlpha } .background(Color.Red) ) // [END android_compose_animations_animate_as_state] + { Button(onClick = { enabled = !enabled }) { Text("Animate me!") } } } @Preview