How to get barriers to work with MotionLayout
up vote
0
down vote
favorite
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!
android android-motionlayout
add a comment |
up vote
0
down vote
favorite
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!
android android-motionlayout
1
Hey, could you post the relevant code that you have so far?
– RX9
Nov 7 at 15:33
Although not answering your question, the Android Dev Summit is today and there is a Session on ConstraintLayout and what's new in 2.0 which may be helpful to you. developer.android.com/dev-summit/schedule/day1
– teh_raab
Nov 7 at 15:33
@RX9 Yeah, give me a moment to post some shortened down code.
– Sam Lee
Nov 7 at 15:34
@RX9 The code is up!
– Sam Lee
Nov 7 at 15:44
@teh_raab Thanks for the link! I'll be sure to check that out after work.
– Sam Lee
Nov 7 at 15:45
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
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!
android android-motionlayout
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!
android android-motionlayout
android android-motionlayout
edited Nov 7 at 15:44
asked Nov 7 at 15:26
Sam Lee
12
12
1
Hey, could you post the relevant code that you have so far?
– RX9
Nov 7 at 15:33
Although not answering your question, the Android Dev Summit is today and there is a Session on ConstraintLayout and what's new in 2.0 which may be helpful to you. developer.android.com/dev-summit/schedule/day1
– teh_raab
Nov 7 at 15:33
@RX9 Yeah, give me a moment to post some shortened down code.
– Sam Lee
Nov 7 at 15:34
@RX9 The code is up!
– Sam Lee
Nov 7 at 15:44
@teh_raab Thanks for the link! I'll be sure to check that out after work.
– Sam Lee
Nov 7 at 15:45
add a comment |
1
Hey, could you post the relevant code that you have so far?
– RX9
Nov 7 at 15:33
Although not answering your question, the Android Dev Summit is today and there is a Session on ConstraintLayout and what's new in 2.0 which may be helpful to you. developer.android.com/dev-summit/schedule/day1
– teh_raab
Nov 7 at 15:33
@RX9 Yeah, give me a moment to post some shortened down code.
– Sam Lee
Nov 7 at 15:34
@RX9 The code is up!
– Sam Lee
Nov 7 at 15:44
@teh_raab Thanks for the link! I'll be sure to check that out after work.
– Sam Lee
Nov 7 at 15:45
1
1
Hey, could you post the relevant code that you have so far?
– RX9
Nov 7 at 15:33
Hey, could you post the relevant code that you have so far?
– RX9
Nov 7 at 15:33
Although not answering your question, the Android Dev Summit is today and there is a Session on ConstraintLayout and what's new in 2.0 which may be helpful to you. developer.android.com/dev-summit/schedule/day1
– teh_raab
Nov 7 at 15:33
Although not answering your question, the Android Dev Summit is today and there is a Session on ConstraintLayout and what's new in 2.0 which may be helpful to you. developer.android.com/dev-summit/schedule/day1
– teh_raab
Nov 7 at 15:33
@RX9 Yeah, give me a moment to post some shortened down code.
– Sam Lee
Nov 7 at 15:34
@RX9 Yeah, give me a moment to post some shortened down code.
– Sam Lee
Nov 7 at 15:34
@RX9 The code is up!
– Sam Lee
Nov 7 at 15:44
@RX9 The code is up!
– Sam Lee
Nov 7 at 15:44
@teh_raab Thanks for the link! I'll be sure to check that out after work.
– Sam Lee
Nov 7 at 15:45
@teh_raab Thanks for the link! I'll be sure to check that out after work.
– Sam Lee
Nov 7 at 15:45
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53192538%2fhow-to-get-barriers-to-work-with-motionlayout%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Hey, could you post the relevant code that you have so far?
– RX9
Nov 7 at 15:33
Although not answering your question, the Android Dev Summit is today and there is a Session on ConstraintLayout and what's new in 2.0 which may be helpful to you. developer.android.com/dev-summit/schedule/day1
– teh_raab
Nov 7 at 15:33
@RX9 Yeah, give me a moment to post some shortened down code.
– Sam Lee
Nov 7 at 15:34
@RX9 The code is up!
– Sam Lee
Nov 7 at 15:44
@teh_raab Thanks for the link! I'll be sure to check that out after work.
– Sam Lee
Nov 7 at 15:45