Шрифт:
Разметки бывают нескольких видов, некоторые из которых мы рассмотрим отдельно.
1) FrameLayout – это, пожалуй, самый простой вид разметки. Как правило, это пустое пространство на экране, которое возможно заполнить элементами только путём прикрепления их к верхнему левому углу экрана. В такой разметке никак нельзя определить желаемое местоположение для объектов. Каждый последующий добавленный объект будет накладываться поверх предыдущих, при этом частично или полностью затеняя их.
2) LinearLayout – название говорит само за себя: все элементы в данной разметке располагаются в одну линию. Макет автоматически выравнивает все находящиеся в нём объекты в одном заданном направлении – либо вертикально, либо горизонтально. Все элементы становятся один за другим в ряд и имеют одинаковый размер, за исключением случаев, когда для отдельных элементов прописывается конкретный размер или конкретный вес. Об этом мы поговорим чуть позже и рассматривать будем уже на практике.
3) TableLayout – табличная разметка, которая позиционирует добавленные элементы в строки и столбцы, она не отображает линии для них, и вполне может иметь строки с разным количеством ячеек. При формировании такой разметки некоторые из ячеек при необходимости можно оставлять пустыми либо заполнять другими макетами.
4) RelativeLayout – это относительная разметка, в которой все элементы расположены так, что, если первый элемент расположен по центру экрана, другие элементы, будут выравниваться относительно первого элемента.
5) ConstraintLayout – представляет собой контейнер, который позволяет создавать гибкие интерфейсы. Для определения позиции элемента внутри данного макета необходимо указать ограничения либо по горизонтали, либо по вертикали. Позиционирование может производиться как относительно границ самого макета, так и относительно любого другого элемента внутри разметки.
6) ScrollView – скроллинг. Используется при больших объёмах текста, картинок и прочего, которые не помещаются на экран и требуется прокрутка. ScrollView внутри себя может иметь только один дочерний элемент, например LinearLayout, а в этом макете уже размещаются остальные элементы.
Шпаргалка № 3. Параметры.
Абсолютно все макеты и элементы, которые содержит в себе приложение, должны иметь некие параметры: название, размер (высота и ширина), вес, ориентация, задний фон, цвет и многое другое. В этой главе мы рассмотрим основные, самые важные параметры для разметок и их элементов.
android:id="@+id/abc" – ID элемента (имя), пожалуй самый важный параметр, так как при любом действии Android Studio будет обращаться к элементу именно по ID.
android:layout_width="match_parent" – ширина элемента, бывает двух типов "match_parent" – будет растянут на весь контейнер, или "wrap_content" – займёт места столько, сколько внутри будет контента (например, текста). Также, при необходимости, можно указывать размер вручную, для этого необходимо указать следующий параметр в пикселях, например "200dp". Цифра может быть любая, хоть 121, хоть 367.
android:layout_height="wrap_content" – высота элемента. Все параметры такие же, как и у ширины.
android:layout_weight="1" – вес. Данный параметр чаще всего используется в разметке LinearLayout, когда элементы должны занимать на экране определенное количество места, но делать это должны автоматически, а не вручную. Параметр может быть любой, начиная от числа 0,1.
android:orientation="vertical" – ориентация макета. Бывает "vertical" – вертикальная, и "horizontal" – горизонтальная.
android:background="@color/cherry" – задний фон. На любой макет или элемент можно установить задний фон. Это может быть просто сплошной цвет, который взят из базы цветов в разделе color ("@color/cherry"), или прописан кодом ("#D12B68"), а также это может быть любая картинка ("@drawable/print", "@mipmap/print").
android:gravity="center" – гравитация. Определяет местоположение текста внутри элемента, в данном примере – по центру.
android:layout_gravity="center_horizontal" – определяет местоположение элемента внутри контейнера. Так же, как и android:gravity может быть разных видов: "top" – сверху, "bottom" – снизу, "left" – слева, "right" – справа.