要在程序中启动MotionLayout的转换,需要使用TransitionManager类。以下是示例代码:
// 获取MotionLayout视图
MotionLayout motionLayout = findViewById(R.id.motionLayout);
// 定义转换对象
Transition transition = motionLayout.getTransition(R.id.transition_id);
// 启动转换
TransitionManager.beginDelayedTransition(motionLayout, transition);
其中,R.id.transition_id 是MotionLayout中定义的转换的ID。
如果你想在Button 点击事件中或者使用Handler延时启动转换,可以像这样使用TransitionManager:
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 获取MotionLayout视图
MotionLayout motionLayout = findViewById(R.id.motionLayout);
// 定义转换对象
Transition transition = motionLayout.getTransition(R.id.transition_id);
// 启动转换
TransitionManager.beginDelayedTransition(motionLayout, transition);
}
});
// 使用Handler延时启动转换
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 获取MotionLayout视图
MotionLayout motionLayout = findViewById(R.id.motionLayout);
// 定义转换对象
Transition transition = motionLayout.getTransition(R.id.transition_id);
// 启动转换
TransitionManager.beginDelayedTransition(motionLayout, transition);
}
}, 1000); // 延时1秒
上一篇:AndroidStudio:您的构建当前配置为使用Java19.0.2和Gradle7.5。
下一篇:AndroidStudio:如果我在软键盘上点击Enter键,它会跳转到一个Fragment或Activity。