是否可以使用 Java/Kotlin 在 android MotionLayout 中从开始状态切换到结束状态?

Is it possible to switch from Start state to End state in android MotionLayout using Java/Kotlin?

我正在开发一个使用 MotionLayout 的 android 项目。长话短说,我想使用 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,但是它是用来做变化过程中的事情的,不是触发变化的。

我不知道该怎么办。谁能帮我这个? 谢谢。

您可以使用 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()
    }
  }
);