是否可以使用 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()
}
}
);
我正在开发一个使用 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()
}
}
);