Как том цепи несколько переходов? - PullRequest
0 голосов
/ 27 мая 2019

Горячий, чтобы проигрывать переходы один за другим в 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>

Ответы [ 2 ]

0 голосов
/ 10 июля 2019
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
           }
        }
    })
0 голосов
/ 01 июня 2019

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

((MotionLayout)findViewById(R.id.simple_start)).transitionToEnd();
((MotionLayout)findViewById(R.id.simple_middle)).transitionToEnd();
...