Как связать несколько переходов?

Горячо проигрывать переходы один за другим в motionlayout, чтобы это выглядело как единая анимация? Хотя ключевой кадр можно использовать для создания промежуточных состояний между двумя наборами констант, они также ограничены и не могут изменять все желаемые свойства.

    <Transition

        app:constraintSetEnd = "@layout/simple_start"
        app:constraintSetStart = "@layout/simple_middle"

        >
        <OnSwipe
            app:dragDirection = "dragUp"
            app:touchAnchorId = "@id/scrollable"
            app:touchAnchorSide = "top" />

    </Transition>
    <Transition

        app:constraintSetEnd = "@layout/simple_middle"
        app:constraintSetStart = "@layout/simple_end"

        >
        <OnSwipe
            app:dragDirection = "dragUp"
            app:touchAnchorId = "@id/scrollable"
            app:touchAnchorSide = "top" />

    </Transition>

</MotionScene>
1
0
476
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы пробовали запускать переходы прямо в коде?

((MotionLayout)findViewById(R.id.simple_start)).transitionToEnd();
((MotionLayout)findViewById(R.id.simple_middle)).transitionToEnd();
Ответ принят как подходящий
override fun onClick(v: View) {

    when (v.id) {
        R.id.likeView -> {                  
       motionLayout.setTransition(R.id.start_first_set,R.id.end_first_set)
       motionLayout.transitionToEnd() // start first anime
        }
   }

   motionLayout.setTransitionListener(object : MotionLayout.TransitionListener{

  // .....

        override fun onTransitionCompleted(p0: MotionLayout?, id: Int) {
            when (id) {
                R.id.end_first_set -> {              
          motionLayout.setTransition(R.id.start_second_set,R.id.end_secons_set)
          motionLayout.transitionToEnd() // start second anime
           }
        }
    })

Другие вопросы по теме