Контейнерные виджеты от обычных виджетов отличаются тем, что обычные виджеты такие как TextView размещаются внутри контейнерных. Размещение обычного виджета внутри контейнера означает написать тег виджета между открывающим и закрывающими тегами контейнера.
Рассмотренные контейнерные виджеты это:
- LinearLayout - который служит для автомтического размещения вложенных в него виджетов по порядку. Можно размещать по вертикали и горизонтали, направление размещения виджета указывается через атрибут orientation, который может принимать два значения: vertical и horizontal.
- ScrollView - это виджет, который служит для размещения содержимого, который не помещается на одном экране устройства и для просмотра содержимого, которое выходит за пределы экрана необходимо прокрутить страницу вниз. Внутри ScrollView разрешено размещение только одного прямого потомка, таким потомком может быть как один виджет, так и другой контейнер такой как LinearLayout. Ограничений в размещении виджетов внутри потомков ScrollView нет. ScrollView предоставляет возможность только вертикальной прокрутки и если есть необходимость в горизонтальном скролле необходимо использовать HorizontalScrollView.
- ConstraintLayout – контейнер для расположения объектов указывая привязки к контейнеру или к другим виджетам на основе их атрибута id.
- FrameLayout – контейнер для свободного позиционирования виджетов, обычно используется для показа фрагментов, так как если разместить несколько виджетов они накладываются друг на друга и размещаются относительно левого верхнего угла.