ElMehdi A
12/05/2020, 12:05 PMenum class CircleStatus { Shrinking,Growing}
val sizeState = FloatPropKey()
@Composable
fun getSizeTransitionDefinition(mutableState: MutableState<CircleStatus>): TransitionState {
return transition(
definition = sizeTransitionDefinition(),
initState = CircleStatus.Shrinking,
toState = CircleStatus.Growing
)
}
fun sizeTransitionDefinition(): TransitionDefinition<CircleStatus> {
return transitionDefinition {
state(CircleStatus.Shrinking) { this[sizeState] = 50f }
state(CircleStatus.Growing) { this[sizeState] = 175f }
transition(fromState = CircleStatus.Shrinking, toState = CircleStatus.Growing) {
sizeState using repeatable(
iterations = Infinite,
animation = tween(
easing = LinearEasing,
durationMillis = 1000
)
)
}
transition(fromState = CircleStatus.Growing, toState = CircleStatus.Shrinking) {
sizeState using repeatable(
iterations = Infinite,
animation = tween(
easing = LinearEasing,
durationMillis = 1000
)
)
}
}
}
ScrollableColumn {
val animation = getSizeTransitionDefinition(state)[sizeState]
Canvas(modifier = Modifier.preferredSize(80.dp)) {
drawCircle(color = Color.Red, animation)
}