MotionLayout 中的默认状态是什么?
What is the default state in MotionLayout?
我在 MotionLayout
中找不到任何关于 MotionScene
默认状态的文档。
我有如下简单的MotionScene
<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<Transition
app:constraintSetStart="@id/customStart"
app:constraintSetEnd="@id/customEnd"
app:duration="250" />
<ConstraintSet android:id="@+id/customStart">
<Constraint
android:id="@id/someId"
android:layout_width="0dp"
android:layout_height="0dp" />
</ConstraintSet>
<ConstraintSet android:id="@+id/customEnd">
<Constraint
android:id="@id/someId"
android:layout_width="0dp"
android:layout_height="0dp"/>
</ConstraintSet>
</MotionScene>
那么MotionLayout
如何设置视图首次创建时的默认状态呢?我如何手动设置,比如 customEnd
,作为默认状态?
MotionScene 现在有 StateSet
个元素,它有一个默认状态的属性。
<StateSet app:defaultState="@id/start"/>
MotionScene
里面的第一个constraintSetStart
定义了MotionLayout
的默认状态。
如果你想改变它,你可以调用
motionLayout.setState(R.id.constraintSetId, motionLayout.width, motionLayout.height)
在您的 Fragment
或 Activity
内。
我在 MotionLayout
中找不到任何关于 MotionScene
默认状态的文档。
我有如下简单的MotionScene
<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<Transition
app:constraintSetStart="@id/customStart"
app:constraintSetEnd="@id/customEnd"
app:duration="250" />
<ConstraintSet android:id="@+id/customStart">
<Constraint
android:id="@id/someId"
android:layout_width="0dp"
android:layout_height="0dp" />
</ConstraintSet>
<ConstraintSet android:id="@+id/customEnd">
<Constraint
android:id="@id/someId"
android:layout_width="0dp"
android:layout_height="0dp"/>
</ConstraintSet>
</MotionScene>
那么MotionLayout
如何设置视图首次创建时的默认状态呢?我如何手动设置,比如 customEnd
,作为默认状态?
MotionScene 现在有 StateSet
个元素,它有一个默认状态的属性。
<StateSet app:defaultState="@id/start"/>
MotionScene
里面的第一个constraintSetStart
定义了MotionLayout
的默认状态。
如果你想改变它,你可以调用
motionLayout.setState(R.id.constraintSetId, motionLayout.width, motionLayout.height)
在您的 Fragment
或 Activity
内。