Я использую MotionLayout для создания простой анимации: у меня в MotionLayout есть два вида: панель, ограниченная сверху, и RecyclerView, ограниченная снизу панели.Когда я прокручиваю RecyclerView, вид сверху должен быть вытолкнут.(Как сворачивающаяся панель инструментов) Мой MotionScene выглядит следующим образом:
<Transition
motion:constraintSetEnd="@+id/end"
motion:constraintSetStart="@+id/start">
<OnSwipe
motion:dragDirection="dragUp"
motion:moveWhenScrollAtTop="false"
motion:touchAnchorId="@+id/table_view" />
</Transition>
<ConstraintSet android:id="@+id/start">
<Constraint
android:id="@+id/table_view"
android:layout_width="0dp"
android:layout_height="0dp"
motion:layout_constraintBottom_toBottomOf="parent"
motion:layout_constraintEnd_toEndOf="parent"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintTop_toBottomOf="@+id/filters" />
<Constraint
android:id="@+id/filters"
android:layout_width="0dp"
android:layout_height="48dp"
motion:layout_constraintEnd_toEndOf="parent"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintTop_toTopOf="parent" />
</ConstraintSet>
<ConstraintSet android:id="@+id/end">
<Constraint
android:id="@+id/table_view"
android:layout_width="0dp"
android:layout_height="0dp"
motion:layout_constraintBottom_toBottomOf="parent"
motion:layout_constraintEnd_toEndOf="parent"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintTop_toTopOf="parent" />
<Constraint
android:id="@+id/filters"
android:layout_width="0dp"
android:layout_height="48dp"
android:translationY="-48dp"
motion:layout_constraintEnd_toEndOf="parent"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintTop_toTopOf="parent" />
</ConstraintSet>
Фильтры - это вид сверху, а table_view - это RecyclerView.Анимация работает как шарм только с довольно большим сбоем.Когда я впервые захожу на экран и начинаю перетаскивать RecyclerView вниз , весь вид сверху исчезает.Если я начну прокручивать вверх, все вернется к норме, и я больше не смогу воспроизвести глюк.Я не знаю, делаю ли я что-то не так, или в MotionLayout есть ошибка.
Примечания: Мне понадобился transitionY для определенных целей.Если я изменю направление OnSwipe на dragDown , то же самое происходит, когда я начинаю прокручивать вверх.