Friday, August 21, 2020

ConstraintLayout 2.0.0

We are very happy to announce the stable release of ConstraintLayout 2.0 -- a long journey, but this version adds a very 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, the new features will help you build powerful and adaptable layouts. Most notably of course, this release introduces MotionLayout, an extremely powerful subclass of ConstraintLayout that you can use to 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'
}




or if using the android.support packages:

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



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


Note

We are aware of a compatibility issue with Motion Editor in Studio 4.0, a fix will be released shortly. 

Bugfixes


Here is the list of issues fixed since the rc1. Notable fixes are:
  • MotionLayout Transition delays & TransitionListener fixes
  • ConstraintLayout flow & barrier fixes
MotionLayout inside ScrollView does not properly adjust height after transition140447122
A view has 0 width instead of full width when surrounded and constrained with other three gone views162917672
ConstraintLayout : View that has both top and bottom constraints is positioned wrong163880200
ConstraintLayout : incorrect positioning when applying a bias of 1.0165028374
Setting the visibility of a View to GONE causes layout to render incorrectly in 2.0.0-rc1164130218
[Flow] android:layout_width == 0dp works wrong164794521
TransitionListener.onTransitionChange is called over and over again when use MotionLayout in RelativeLayout152542382
Incorrect positioning of Barriers in 2.0.0-beta5159540431
TOP barrier broken in beta8163100583
Long duration fadeIn animation163848906
Negative padding causes issues with 2.0.0-rc1164160877