ConstraintLayout is a
ViewGroup which allows you to position and size widgets in a flexible way. It is compatible with Android 2.3 (API level 9) and higher.
It allows you to create large and complex layouts with a flat view hierarchy. It is similar to
RelativeLayout in that all views are laid out according to relationships between sibling views and the parent layout, but it's more flexible than
RelativeLayout and easier to use with Android Studio's Layout Editor.