Можно ли переключиться из начального состояния в конечное состояние в android MotionLayout с использованием Java / Kotlin? - PullRequest
1 голос
/ 27 февраля 2020

Я работаю над проектом android, в котором используется MotionLayout. Короче говоря, я хочу программно переключаться между состояниями Start и End, используя Java. Скажем, это должно произойти при нажатии кнопки. Поэтому я ищу что-то вроде этого:

MotionLayout myMotionLayout = findViewById(R.id.myMotionLayout);
Button button = findViewById(R.id.button);

button.setOnClickListener( v -> {
  // some code that switches the state
}
);

Я много работал в Google, но не смог найти что-то подобное. Я столкнулся с методом MotionLayout, названным setTransitionListener, но он используется для выполнения каких-либо действий во время изменения, а не для запуска изменения.

Я не знаю, что делать. Кто-нибудь может мне с этим помочь? Спасибо.

1 Ответ

1 голос
/ 27 февраля 2020

Вы можете использовать myMotionLayout.transitionToEnd() и myMotionLayout.transitionToStart():

MotionLayout myMotionLayout = findViewById(R.id.myMotionLayout);
Button button = findViewById(R.id.button);

button.setOnClickListener( v -> {
    if(myMotionLayout.getCurrentState() == R.id.start_state) {
        myMotionLayout.transitionToEnd()
    } else {
        myMotionLayout.transitionToStart()
    }
  }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...