Как исправить неработающую анимацию выхода во время анимации входа в AnimatedVisibility?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как исправить неработающую анимацию выхода во время анимации входа в AnimatedVisibility?

Сообщение Anonymous »

У меня есть представление, которое начинает анимироваться, как только оно становится видимым. Входная анимация — это FadeIn+expandIn, анимация выхода — FadeOut+shrinkOut. В представлении есть кнопка закрытия. При нажатии я изменяю видимость на false, чтобы запускалась анимация выхода. Анимации работают правильно, если они не перекрываются.
Однако, если нажать кнопку закрытия до завершения анимации входа, я увижу довольно быструю анимацию выхода. Я ожидаю, что включу анимацию, чтобы остановить ее, и выйду из анимации, чтобы взять на себя управление и уменьшить представление с той точки, где оно было изящно расширено.
Как я могу заставить работать ожидаемое поведение?
val visibleState = remember {
MutableTransitionState(false).apply {
// Start the animation immediately.
targetState = true
}
}
AnimatedVisibility(
enter = fadeIn(
animationSpec = keyframes {
this.durationMillis = animationDuration
},
) + expandIn(
animationSpec = keyframes {
this.durationMillis = animationDuration
},
),
exit = fadeOut(
animationSpec = keyframes {
this.durationMillis = animationDuration
},
) + shrinkOut(
animationSpec = keyframes {
this.durationMillis = animationDuration
},
),
visibleState = visibleState,
) {
...
Button(
onClick = {
visibleState.targetState = false
},
...
)
}


Подробнее здесь: https://stackoverflow.com/questions/789 ... in-animate
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»