Допустим, у меня есть виды A, B, C и D.
Мне нужно оживить View A
, доведя его высоту от нуля до CONSTANT_HEIGHT
(который у меня есть), а также его альфа от нуля до 1.
Сразу после анимации View A
мне нужно оживить альфа View B
от 0 до 1, альфа View C
от 0 до 1 и вызвать метод setChecked
на View D
(настраиваемый флажок). setChecked(checked: Boolean, animate: Boolean)
метод уже имеет анимацию, если параметр animate
равен true
.
Итак, первая анимация будет выглядеть так: View A
-> от alpha
до 1.0f
вместе с height
до CONSTANT_HEIGHT
.
Сразу после завершения первой анимации начнется вторая анимация, и это будет: View B
и View C
alpha
до 1.0f
и View D
вызывают setChecked(checked: true, animate:true)
, все они воспроизводятся вместе / одновременно (параллельно).
Как я могу этого добиться?
Я пробовал через Transition
, AnimatorSet
и т. Д., Но все попытки терпели неудачу. Может ли кто-нибудь посоветовать мне, как решить эту проблему?
ИЗМЕНИТЬ:
Пробуем пройти через переход:
val tras1 = TransitionManager.beginDelayedTransition(statusLayout, Fade(Fade.IN))
firstLine.layoutParams.height = 200
firstLine.alpha = 1.0f
firstCheckBox.setChecked(true, true)
Например, здесь я использовал Fade(Fade.IN)
в качестве перехода, но я также меняю высоту вида (firstLine
), верно? Тогда как мне запланировать следующий переход после этого? После последнего перехода нужно ли его закрыть (или что-нибудь сделать)?
РЕДАКТИРОВАТЬ2:
Я пытаюсь сделать следующее, но анимация не воспроизводится плавно (на самом деле они резко меняются, как будто анимации вообще не было. Тот же эффект, что и при вызове view.alpha = 1.0f
.
TransitionManager.beginDelayedTransition(statusLayout, Fade(Fade.IN))
firstLine.alpha = 1.0f
TransitionManager.beginDelayedTransition(statusLayout, ChangeBounds())
firstLine.layoutParams.height = 200
TransitionManager.beginDelayedTransition(statusLayout, Fade(Fade.IN))
myLabel.alpha = 1.0f
beginTransition
? Не могли бы вы добавить пример по моему делу? - person rgoncalv   schedule 07.04.2018Apply a transition without scenes
раздел - person pskink   schedule 07.04.2018beginDelayedTransition()
, когда закончится первыйTransition
... какие у тебя с ним проблемы? - person pskink   schedule 08.04.2018"so call another beginDelayedTransition() when the first Transition ends... what kind of problems do you have with it?"
вызовbeginDelayedTransition
3 раза подряд этого не делает - person pskink   schedule 08.04.2018android.transition.Transition
API javadocs - person pskink   schedule 08.04.2018