Линейная разметка (Linear Layout)

LinearLayout это контейнер для визуальных элементов, который выравнивает дочерние элементы по одному направлению: вертикально или горизонтально. Вы можете указать направление в атрибуте android:orientation.

linearlayout

Все дочерние элементы LinearLayout располагаются один за другим по порядку, так в вертикальном списке в строке находится только один элемент, насколько бы широким он не был, а в горизонтальном будет существовать всего одна строка высотой, равной самому высокому элементу плюс отступы. LinearLayout учитывает поля(margins) и притяжение (gravity) (к левому краю, правому краю или центру) каждого дочернего элемента.

Вес разметки (weight)

Одинаковый вес элементов

Для создания линейной разметки, в которой каждый элемент занимает одинаковое пространство на экране, установите атрибут android:layout_height каждого элемента в значение "0dp" (для вертикальной разметки) или android:layout_width в значение "0dp" (для горизонтальной разметки). После этого установите для каждого элемента атрибут android:layout_weight в значение 1.

LinearLayout также поддерживает индивидуальный вес компонентов, который задается с помощью атрибута android:layout_weight. Этот атрибут показывает сколько места должен занимать элемент на экране. Больший вес позволяет элементу растягиваться для заполнения оставшегося пространства родительского контейнера. Дочерние элементы занимают пространство пропорционально указанному весу. Значение по умолчанию равно нулю.

Например, у нас есть три текстовых поля, два из которых имеют вес равный 1, а вес третьего не указан. В этом случае элемент без веса будет занимать только пространство, необходимое для отображение его содержимого и расширяться не будет. Остальные два поля растянутся на оставшееся пространство и поделят его пополам. Если третьему полю указать вес 2 (вместо 0), оно займет половину общего пространства, а два других получат по 1/4.

Пример

Подробнее об атрибутах дочерних элементов LinearLayout, смотрите в руководстве LinearLayout.LayoutParams.

Добавить комментарий