MotionLayout OnSwipe переходный глюк, когда первый раз проводите в противоположном направлении - PullRequest
0 голосов
/ 01 марта 2019

Я использую 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 , то же самое происходит, когда я начинаю прокручивать вверх.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...