Анимировать оффсет текста. Можно с animateOffsetAsState, или можно через Animatable()
animatable интуитивнее
Смотря в каких ситуациях
@Composable fun Shaker() { val shake = remember { Animatable(0f) } var trigger by remember { mutableStateOf(0L) } LaunchedEffect(trigger) { if (trigger != 0L) { for (i in 0..3) { when (i % 2) { 0 -> shake.animateTo(10f, tween(durationMillis = 100)) else -> shake.animateTo(-10f, tween(durationMillis = 100)) } } shake.animateTo(0f) } } Box( modifier = Modifier .clickable { trigger = System.currentTimeMillis() } .offset { IntOffset(x = shake.value.roundToInt(), y = 0) } .padding(horizontal = 24.dp, vertical = 8.dp) ) { Text(text = "Shake me") } }
Обсуждают сегодня