ConstraintLayout — это мощный инструмент для создания гибких и производительных макетов в Android. Рассмотрим ключевые вспомогательные элементы:
Назначение: Логическая группировка view без создания ViewGroup.
Преимущества:
setVisibility())LinearLayout)<androidx.constraintlayout.widget.Group
android:id="@+id/myGroup"
android:visibility="visible"
app:constraint_referenced_ids="button1,button2,textView1" />
Назначение: Невидимые направляющие для выравнивания элементов.
Типы:
orientation="vertical")orientation="horizontal")layout_constraintGuide_begin - отступ от началаlayout_constraintGuide_end - отступ от концаlayout_constraintGuide_percent - позиция в процентах (0.5 = 50%)<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.3" />
Назначение: "Динамическая Guideline", которая адаптируется к размеру view.
Типы: left, top, right, bottom, start, end
Особенности:
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier"
app:barrierDirection="end"
app:constraint_referenced_ids="textView1,textView2" />
Назначение: Управление распределением view вдоль оси (горизонтальной/вертикальной).
Типы:
spread - равномерное распределение (по умолчанию)spread_inside - крайние view прижаты к границамpacked - все view сгруппированы вместеАтрибуты:
layout_constraintHorizontal_chainStylelayout_constraintVertical_chainStylelayout_constraintHorizontal_weight<Button
android:id="@+id/button1"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintEnd_toStartOf="@id/button2"
... />
<Button
android:id="@+id/button2"
app:layout_constraintStart_toEndOf="@id/button1"
... />
Эти элементы делают ConstraintLayout мощным инструментом для создания сложных адаптивных макетов с минимальной вложенностью.