首页 > 解决方案 > 使用 MotionLayout 制作的动画完成后如何意图进行活动?

问题描述

我在一个项目中使用了 MotionLayout。

问题是当按钮被点击时,只能播放动画,并没有执行到下一个活动的转移。OnClickListener 方法显然停止了!

有没有人有这个问题的合乎逻辑的解决方案?

运动场景

 <Transition
        android:id="@+id/state3"
        app:constraintSetStart="@+id/next"
        app:constraintSetEnd="@id/nextLevel"
        app:duration="1000">
        <OnClick
            app:clickAction="transitionToEnd"
            app:targetId="@+id/btnNext" />
    </Transition>

爪哇


    @Override
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.btnNext:

             startActivity(new Intent(MainActivity.this , LoginActivity.class));

             break;

        }
    }

标签: javaandroid-animationonclicklistenerandroid-transitionsandroid-motionlayout

解决方案


如果您正在处理 onClick,则可以进行转换。motionLayout.transitionToEnd()

如果你想transtionToEnd 然后启动意图。(在 2.1 中)

 @Override
public void onClick(View v) {

    switch (v.getId()) {

        case R.id.btnNext:
             motionLayout.transitionToEnd(() ->
             startActivity(new Intent(MainActivity.this , LoginActivity.class));
        }
     }
}

推荐阅读