Old School
Старые добрые виджеты. Без зависимостей
Думаю нет смысла указывать TextView
, EditText
, ImageView
, Button
, ImageButton
, ScrollView
и прочие, с ними должно быть все понятно.
AbsoluteLayout
На самом деле, это шутка, но просто для общего развития). Старый виджет, обычный контейнер, но элементы внутри позиционируется через координаты x и y. Это так себе)
FrameLayout
Это просто контейнер для элементов, у которых есть свойство android:layout_gravity
для выравнивания относительно родителя
LinearLayout
Это контейнер для вертикального или горизонательного расположения элементов. Из интересного тут только android:weight
, который позволяет распределить пространство между элементами в нужном отношении. Если элемент не должен участвовать в этом распределении, то просто указывать размер как wrap_content
, иначе чем больше относительный weight, тем больше размер.
RelativeLayout
Можно сказать это lite версия ConstraintLayout
. Здесь есть аттрибуты для выравнивания относительно как само контейнера, так и соседних элементов. Lite, потому что без extra плюшек.
GridLayout
Это lite версия GridView, когда адаптер излишен, и дочерние элементы можно расположить прям в разметке.
HorizontalScrollView
Это горизонтальный ScrollView
Space
Это интересный виджет. Он нужен для того, что не нагружать gpu отрисовкой лишнего view, получается, он просто определяет границы элемента
include
Это полезный тэг, позволяет добавить в нужное место разметку из другого файла, чтобы не копипастить
merge
Чем-то схож с тэгом include
, тоже связан с добавлением разметки из файла, но его главная задача - это уменьшить вложения контейнеров. Это как бы псевдоконтейнер, его элементы добавляются в нужный контейнер без него самого. Таким образом вложенности нет
Last updated