我正在使用MotionLayout创建动画,需要隐藏一些元素。 尝试在单个元素中使用visibility属性可以实现,但为了使XML文件更短,我希望只指定包含所有这些元素的组(来自ConstraintLayout帮助程序)
类似这样:
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<Transition
app:constraintSetStart="@id/start"
app:constraintSetEnd="@id/end"
app:duration="300">
<OnSwipe
app:touchAnchorId="@id/details_group"
app:touchAnchorSide="bottom"
app:dragDirection="dragDown"
/>
</Transition>
<ConstraintSet
android:id="@+id/start">
<Constraint
android:id="@+id/details_group"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone"
app:constraint_referenced_ids="detail_value_topl,detail_icon_topl,detail_value_topr" />
</ConstraintSet>
<ConstraintSet
android:id="@+id/end">
<Constraint
android:id="@+id/details_group"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="visible"
app:constraint_referenced_ids="detail_value_topl,detail_icon_topl,detail_value_topr" />
</ConstraintSet>
</MotionScene>
但它不起作用,有什么办法可以让它起作用吗?
另外,我更喜欢不使用alpha,因为所有约束都设置好了,当它们消失时容器会重新调整大小。