第一次以相反方向滑动时,MotionLayout OnSwipe过渡故障

时间:2019-03-01 08:52:33

标签: android android-constraintlayout android-motionlayout

我正在使用MotionLayout来实现简单的动画:我的MotionLayout中有两个视图,一个约束在顶部的栏,一个RecyclerView约束在栏的底部。滚动RecyclerView时,应将顶视图推出。 (就像折叠的工具栏一样)My 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 ,当我开始向上滚动时,会发生相同的事情。

0 个答案:

没有答案