We are happy to announce the release candidate of ConstraintLayout 2.0. As this might be the final release before stable, we encourage people to try it and report any issues with their projects!

ConstraintLayout 2.0 adds a long list of capabilities to v1, from better runtime API to build up layouts to the introduction of new layout mechanisms such as Flow, or additional helpers like Layer.

Most notably though, this release introduces MotionLayout, an extremely powerful subclass of ConstraintLayout that you can use to easily create refined motion in your application.

In addition to the existing Layout Editor in Android Studio, allowing easy creation and edition of UI with ConstraintLayout, we recently added a new Motion Editor in Android Studio 4.0, enabling you to quickly take advantage of MotionLayout in your projects.

It’s available from the google maven repository:
dependencies {
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-rc1'
}




or if using the android.support packages:

dependencies {
    implementation 'com.android.support.constraint:constraint-layout:2.0.0-rc1'
}


Documentation is available on https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout and https://developer.android.com/reference/androidx/constraintlayout/motion/widget/MotionLayout

Examples are available on https://github.com/android/views-widgets-samples/tree/master/ConstraintLayoutExamples

Bugfixes

Here is the list of issues fixed in rc1. Notable fixes are:
  • Flow fixes
  • RecyclerView fixes (we recommend to update to recyclerview 1.2.0 alpha 5 or later)
  • MotionLayout TransitionListener fixes
  • MotionLayout memory leak fix
layout_constrainedWidth doesn't not work in Flow's children157681357
NPE 's in Flow162261507
layout_constraintDimensionRatio stays applied after a move to another ConstraintSet in MotionLayout140263105
MotionLayout drag doesn't work after fling in RecyclerView141319444
[ConstraintLayout 2.0.0-beta3] NPE when deriveConstraintsFrom is invalid.143549617
apply layout_height="wrap_content" app:layout_constrainedHeight="true" this view height is full of constraint size when onCreat . And Then swich the view GONE/VISIBLE , the size change to the expected result149427470
Flow height is bigger than it should be when its height is `wrap_content`158285666
NullPointerException161061411
Penultimate ImageView shifted when adding more rows161063291
single element in the chain don't have bias applied161741571
MotionLayout : adding views to Flow Helper150940641
Resize in textview when I scroll in customized MotionLayout155215198
MotionLayout firing callback endlessly with GlobalLayout158068868
[Feature-Request] Addition of MotionScene.Transistion::getId.160395303
Incorrect barrier and referenced view placement in 2.0.0-beta8161156064
layout_width="wrap_content" on the parent does not work correctly when a child View has layout_constraintDimensionRatio and layout_constraintHeight_percent in 2.0.0-beta8161826272
possible MotionLayout memory leak161926837
Annotate ConstraintLayout constructor context param as not nullable161926849
Android resource compilation failed after implementation 'constraint-layout:2.0.0-beta8'162011618