播放动画期间运动布局冻结

Motion Layout freeze during play animation

我制作了一个简单的动画来显示 activity 何时开始。 这是我的动画:

问题出在模拟器上,有时动画可以正常播放,但有时会卡住,我必须重新打开应用程序。在我的 phone 上它总是冻结。

我所做的是制作了 2 个单独的布局,一个用于“开始”场景,另一个用于“结束”场景 在开始布局中,我增加了移动视图的左边距。以下代码属于我的动态图像。

开始XML文件中的移动视图之一:

.
.
 <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/metal_iv"
        android:layout_width="300dp"
        android:layout_height="match_parent"

        android:layout_marginStart="400dp"

        android:layout_marginBottom="@dimen/backgroundMarginRegisterActivity"
        android:background="@drawable/background_gray"
        android:elevation="-1dp"
        android:scaleType="fitXY"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:shapeAppearanceOverlay="@style/OnlyOneCorner"/>
.
.

在 XML 结束布局中我减少了左边距:

android:layout_marginStart="40dp"

这是我的 scene.xml 文件:

<MotionScene 
    xmlns:motion="http://schemas.android.com/apk/res-auto">

    <Transition
        motion:constraintSetEnd="@layout/activity_end"
        motion:constraintSetStart="@layout/activity_start"
        motion:autoTransition="animateToEnd"
        motion:duration="1000">
    </Transition>
</MotionScene>

我不知道这是否相关,但开始和结束场景在设计视图中不显示 window。

我终于解决了这个问题。实际上此时约束依赖的最新版本是beta8。但是降级到这个版本解决了我的问题:

implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta3'