How to get barriers to work with MotionLayout

Viewed 625

So I have been playing around with MotionLayout to get certain animations to work, but I had an issue with barriers when converting the ConstraintLayout to the MotionLayout. I have a barrier that references two header views on the top of the parent layout and a ViewGroup that constrains the top of the ViewGroup to the bottom of the barrier; however, when I convert the ConstraintLayout to the new MotionLayout, the barrier does not work anymore. My ViewGroup gets constrained to the top of the parent instead of the bottom of the barrier. I assume this is because the library is still in alpha, but I'm hoping someone has some sort of workaround on that.

Edit:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.motion.MotionLayout 
    usual stuff here
    app:layoutDescription="@xml/scene">

    <CustomHeaderView
        android:id="@+id/first_header"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:visibility="gone"
        app:attachedRecyclerView="@+id/some_recycler_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <SecondCustomHeaderView
        android:id="@+id/second_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible"
        app:attachedRecyclerView="@+id/some_recycler_view"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>

    <android.support.constraint.Barrier
        android:id="@+id/barrier"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierDirection="bottom"
        app:constraint_referenced_ids="first_header,second_header"
        tools:layout_editor_absoluteY="241dp" />

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/some_swipe_container"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintTop_toBottomOf="@id/barrier"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <android.support.v4.widget.NestedScrollView
            android:id="@+id/nested_scroll_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <android.support.v7.widget.RecyclerView
                android:id="@+id/some_recycler_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:descendantFocusability="blocksDescendants"
                android:nestedScrollingEnabled="false" />

        </android.support.v4.widget.NestedScrollView>

    </android.support.v4.widget.SwipeRefreshLayout>


</android.support.constraint.motion.MotionLayout>

Thanks!

0 Answers
Related