我正在使用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搜寻,但找不到类似的东西。我遇到了一个名为setTransitionListener的MotionLayout方法,但该方法用于在更改期间执行操作,而不是触发更改。

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

最佳答案

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

08-17 21:18