Что такое барьер в ConstraintLayout

«Что такое барьер в ConstraintLayout» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Барьер (Barrier) в ConstraintLayout — это невидимая направляющая, которая динамически позиционируется относительно указанных виджетов. Он автоматически перемещается в зависимости от самого большого размера указанных элементов по выбранному краю (start, end, top, bottom).

Пример:

<androidx.constraintlayout.widget.Barrier
    android:id="@+id/barrier"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:barrierDirection="end"
    app:constraint_referenced_ids="button1,button2" />

Здесь barrierDirection="end" означает, что барьер выравнивается по правому краю самого широкого из button1 или button2. Другие виджеты могут привязываться к барьеру (app:layout_constraintStart_toEndOf="@id/barrier"), что удобно для адаптивных интерфейсов.