Android 是否可以使用MotionLayout对ConstraintSet中的不同约束应用不同的持续时间?

Android 是否可以使用MotionLayout对ConstraintSet中的不同约束应用不同的持续时间?,android,android-motionlayout,Android,Android Motionlayout,我正在尝试为登录屏幕实现一个动画,其中用户名和密码的两个EditText在屏幕外设置动画,并以不同的持续时间返回到原始位置。如下所示!。我可以部分地设置动画。但我无法复制延迟动画类型的运动。我尝试使用过渡缓和,但效果不一样 <Transition motion:constraintSetStart="@id/scene_login_start" motion:constraintSetEnd="@id/scene_login_end" motion:duration

我正在尝试为登录屏幕实现一个动画,其中用户名和密码的两个
EditText
在屏幕外设置动画,并以不同的持续时间返回到原始位置。如下所示!。我可以部分地设置动画。但我无法复制延迟动画类型的运动。我尝试使用过渡缓和,但效果不一样

<Transition
    motion:constraintSetStart="@id/scene_login_start"
    motion:constraintSetEnd="@id/scene_login_end"
    motion:duration="350">

    <KeyFrameSet>
        <KeyPosition
            motion:target="@id/editText_username"
            motion:keyPositionType="pathRelative"
            motion:framePosition="1"
            motion:transitionEasing="accelerate" />

        <KeyPosition
                motion:target="@id/editText_password"
                motion:keyPositionType="pathRelative"
                motion:framePosition="1"
                motion:transitionEasing="linear" />

        <KeyPosition
            motion:target="@id/editText_password"
            motion:keyPositionType="pathRelative"
            motion:framePosition="50"
            motion:transitionEasing="decelerate" />

        <KeyPosition
                motion:target="@id/editText_password"
                motion:keyPositionType="pathRelative"
                motion:framePosition="70"
                motion:transitionEasing="decelerate" />

    </KeyFrameSet>
</Transition>


是否可以使用
Motionlayout
实现该类型的动画?

您可以使用KeyPosition控制它。在下面的示例中,textview的动画将在第40帧之前播放,然后在第50帧转到动画的第50帧,并在第75帧完成动画。如果不指定最后一帧,动画将在第100帧正常完成

    <KeyFrameSet>
        <KeyPosition
            motion:percentY="0"
            motion:percentX="0"

            motion:framePosition="40"
            motion:target="@id/textview" />
        <KeyPosition
            motion:percentY="0.5"
            motion:percentX="0.5"
            motion:framePosition="50"
            motion:target="@id/textview" />

        <KeyPosition
            motion:percentY="1"
            motion:percentX="1"
            motion:framePosition="75"
            motion:target="@id/textview" />
    </KeyFrameSet>
       <ConstraintSet>

       </ConstraintSet>
</MotionScene>



是否有一种解决方案用于一般约束而不是仅用于位置约束?例如,如果我更改视图的约束并调整其大小,我也想控制该视图的计时。@安德烈:这些帧指向特定的动画状态。所以,如果将关键帧应用于约束集,其中初始比例为0,最终比例为1,则直到40-比例将为0,40和50之间的比例将从0增加到0.5,从50增加到75,它将增加到1。如果您需要制作复杂的动画,则需要通过代码组合它们。至少在我上一次这样做时,不可能将它们组合成XMLtime@Santosh如果您觉得这个答案有用,请将其标记为已接受。