David
02/06/2024, 7:59 AMDavid
02/06/2024, 8:01 AMTravis Griggs
02/06/2024, 4:29 PMDavid
02/07/2024, 8:11 AMDavid
02/07/2024, 8:14 AMval sliderInput = remember { mutableFloatStateOf(0f) }
val sliderAnimated = remember { Animatable(sliderInput.floatValue) }
LaunchedEffect(sliderInput.floatValue) {
launch {
val vector = shortestVector(
sliderAnimated.value,
sliderInput.floatValue
)
sliderAnimated.animateTo(
sliderAnimated.value + vector,
animationSpec = tween(2000)
)
}
}
Slider(
value = sliderAnimated.value.mod(1f),
onValueChange = {
sliderInput.floatValue = it
},
valueRange = 0f..1f
)
Text(text = "sliderAnimated: ${sliderAnimated.value}!")
fun shortestVector(current: Float, newValue: Float): Float {
val diff = newValue - current
return when {
diff > 0.5 -> diff - 1f
diff < -0.5 -> diff + 1f
else -> diff
}
}
David
02/07/2024, 8:15 AManimate*AsState
David
02/07/2024, 8:15 AM