如何在 Java 代码 MotionLayout 中设置状态结束

How to set the state end in Java code MotionLayout

我使用 MotionLayout

我想管理 Java

中 ConstraintSet 的 @+id/end

例如

<ConstraintSet android:id="@+id/end">
        <Constraint
            android:id="@+id/item_c"
            motion:layout_constraintWidth_percent="0.5"
            motion:layout_constraintEnd_toEndOf="parent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            motion:layout_constraintHeight_percent="0.3"
            motion:layout_constraintStart_toStartOf="parent"
            motion:layout_constraintTop_toTopOf="parent"
            motion:layout_constraintBottom_toBottomOf="parent"
            motion:layout_constraintHorizontal_bias="1"
            motion:layout_constraintVertical_bias="1.0" />
    </ConstraintSet>

我想在开关Java中设置“layout_constraintHorizontal_bias”值

但是我没有找到解决方法

我该怎么办?

ConstraintSet 应该有你需要的所有方法

MotionLayout ml = ...
ConstraintSet set = ml.getConstraintSet(R.id.end)
set.setHorizontalBias(R.id.widgetid, 0.4)
ml.updateState(R.id.end, set);
ml.rebuildScene();

如果您已经处于那种状态,您可能想致电

ml.updateStateAnimate(R.id.end,set,duration_in_ms);