> For the complete documentation index, see [llms.txt](https://vladkalyuzhnyu.gitbook.io/android-layout-tips/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladkalyuzhnyu.gitbook.io/android-layout-tips/constraintlayout.md).

# ConstraintLayout

Самый функциональный виджет

Добавление зависимости:

```
dependencies {
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0'
}
```

Он похож на `RelativeLayout`, но обладает уникальными фишками. Его главная задача это уменьшить вложения контейнеров, потому что это плохо влияет на отзывчивость приложения. Впринципе его лучше использовать вместо `RelativeLayout`, так как аттрибуты выравнивания схожи, и этого достаточно для начала. Я сам использовал, пожалуй, только цепочки `Chains`. На мой взгляд, придется много потренироваться, чтобы овладеть всеми тонкостями этого виджета.

Нагуглил, для анимации используется `ConstraintSet`.

Кстати, интересный факт. Промежуточным звеном между `RelativeLayout` и `ConstraintLayout` был [percent layout](https://developer.android.com/reference/androidx/percentlayout/widget/package-summary). Главное отличие от `RelativeLayout` было в возможности указать процентный размер дочернего элемента, что в вебе давным давно есть). Само собой он deprecated, использовать не надо. `ConstraintLayout` поддерживает процентные размеры.

В общем, если разметка непростая, то скорее всего это лучший выбор. Но для простых кейсов я все равно бы предпочел [старую школу](/android-layout-tips/old-school.md))
