Chris Grigg
Box
scale
onClick
@Composable private fun ShrinkAnimationContent( fade: Boolean, modifier: Modifier, progress: Float, content: @Composable () -> Unit, ) { Box( modifier = modifier .wrapContentSize() .scale(progress) // .scale(if (progress == 0f) 0.0001f else progress) .alpha( when { fade -> progress else -> 1f } ) ) { content() } } @Preview @Composable private fun ShrinkAnimationContentBrokenPreview() { val (count, setCount) = remember { mutableStateOf(0) } Column(modifier = Modifier.fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center) { ShrinkAnimationContent(fade = false, modifier = Modifier, progress = 0f) { Button(onClick = { setCount(count.inc()) }) { Text("Click Me") } } Spacer(modifier = Modifier.requiredHeight(24.dp)) Text("The count is $count") } }
Zach Klippenstein (he/him) [MOD]
scale(progress)
A modern programming language that makes developers happier.