Каковы различия между LinearLayout, RelativeLayout и AbsoluteLayout?

Я смущен различием между LinearLayout, RelativeLayout и AbsoluteLayout. Может кто-нибудь, пожалуйста, скажите мне, какие именно различия между ними?

Ответ 1

LinearLayout означает, что вы можете выровнять виды по одному (по вертикали/по горизонтали).

RelativeLayout означает на основе отношения взглядов своих родителей и других взглядов.

ConstraintLayout похож на RelativeLayout в том, что он использует отношения для позиционирования и размера виджетов, но имеет дополнительную гибкость и его легче использовать в редакторе макетов.

WebView для загрузки HTML, статических или динамических страниц.

FrameLayout для загрузки дочерних FrameLayout друг над другом, подобно карточкам внутри фрейма, мы можем разместить одну над другой или в любом месте фрейма.

не рекомендуется - AbsoluteLayout означает, что вы должны указать точное положение, где должно быть представление.

Для получения дополнительной информации, пожалуйста, проверьте этот адрес https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts

Ответ 2

FrameLayout: макет, который выступает в качестве кадра представления для отображения одного объекта.

RelativeLayout: Позволяет указать расположение дочерних объектов относительно друг друга (дочерний элемент A слева от дочернего B) или родительский (выровненный по верхней части родителя).

LinearLayout: макет, который организует его дочерние объекты в одну горизонтальную или вертикальную строку.

TableLayout: табличный макет с произвольным количеством строк и столбцов, каждая ячейка содержит виджет по вашему выбору. Строки изменяются в соответствии с наибольшим столбцом. Границы ячейки не видны.

Ответ 3

Определения:

  • Структура кадра: это разработано, чтобы заблокировать область на экране, чтобы отобразить единственный элемент.
  • Линейный макет: макет, который размещает своих дочерних элементов в один столбец или одну строку.
  • Относительный макет: этот макет представляет собой группу представлений, которая отображает дочерние представления в относительных положениях.
  • Макет таблицы: макет, который размещает своих дочерних элементов в строки и столбцы.

Дополнительная информация:

FrameLayout

FrameLayout предназначен для блокировки области на экране для отображения одного элемента. Как правило, FrameLayout следует использовать для хранения одного дочернего представления, поскольку может быть трудно организовать дочерние представления таким образом, чтобы их можно было масштабировать до разных размеров экрана без перекрытия дочерних элементов друг с другом. Однако вы можете добавить несколько дочерних элементов в FrameLayout и управлять их положением в FrameLayout, назначая гравитацию каждому дочернему android:layout_gravity атрибута android:layout_gravity.

Дочерние виды отображаются в стеке, а последний добавленный дочерний элемент отображается сверху. Размер FrameLayout - это размер его самого большого дочернего элемента (плюс заполнение), видимый или нет (если позволяет родительский элемент FrameLayout).

RelativeLayout

RelativeLayout - это очень мощная утилита для разработки пользовательского интерфейса, поскольку она может исключить вложенные группы представлений и сохранить плоскость иерархии макета, что повышает производительность. Если вы обнаружите, что используете несколько вложенных групп LinearLayout, вы можете заменить их одним RelativeLayout.

(Текущие документы здесь)

TableLayout

TableLayout состоит из нескольких объектов TableRow, каждый из которых определяет строку (фактически, у вас могут быть другие дочерние TableRow, что будет объяснено ниже). Контейнеры TableLayout не отображают границы для своих строк, столбцов или ячеек. Каждая строка имеет ноль или более ячеек; каждая ячейка может содержать один объект View. В таблице столько столбцов, сколько строк с наибольшим количеством ячеек. Стол может оставить клетки пустыми. Ячейки могут охватывать столбцы, как они могут в HTML.

Ширина столбца определяется строкой с самой широкой ячейкой в этом столбце.


Примечание. Абсолютная компоновка устарела.

Ответ 4

1) FrameLayout - Макет кадра pins each child view within its frame. Позиция по умолчанию - верхний левый угол, хотя вы можете использовать гравитационный атрибут, чтобы изменить его местоположение.

Добавление нескольких дочерних элементов для каждого нового ребенка сверху предыдущего, ie with each new View potentially hiding the previous ones.

2) LinearLayout. Линейная компоновка выравнивает каждый дочерний вид в вертикальной или горизонтальной линии. Вертикальный макет имеет столбец "Представления", а горизонтальный макет имеет ряд представлений. Линейная компоновка поддерживает weight attribute for each child View that can control the relative size of each child View within the available space.

3) RelativeLayout. Относительная компоновка позволяет определить positions of each child View relative to the others и screen boundaries.

4) GridLayout. Представленный в Android 4.0 (API level 14), макет сетки использует rectangular grids to layout Views в ряду строк и столбцов.

Ответ 5

LinearLayout: Макет, который организует своих детей в одну горизонтальную или вертикальную строку. Он создает полосу прокрутки, если длина окна превышает длину экрана. Это означает, что вы можете выравнивать представления один за другим (по вертикали/по горизонтали).

RelativeLayout:. Это позволяет указать расположение дочерних объектов относительно друг друга (дочерний элемент A слева от дочернего B) или родительский (выровненный по верхней части родителя). Он основан на отношении взглядов родителей и других взглядов.

WebView: для загрузки html, статических или динамических страниц.

Для получения дополнительной информации см. эту ссылку: http://developer.android.com/guide/topics/ui/layout-objects.html

Ответ 6

LinearLayout - В LinearLayout представления организованы в вертикальной или горизонтальной ориентации.

RelativeLayout - RelativeLayout намного сложнее, чем LinearLayout, следовательно, предоставляет гораздо больше функциональных возможностей. Представления размещаются, как следует из названия, относительно друг друга.

FrameLayout - он ведет себя как один объект, и его дочерние представления перекрываются друг с другом. FrameLayout принимает размер в соответствии с самым большим дочерним элементом.

Расположение координаторов - это самая мощная ViewGroup, представленная в библиотеке поддержки Android. Он ведет себя как FrameLayout и обладает множеством функций для координации между дочерними представлениями, например, плавающая кнопка и вспомогательная панель, панель инструментов с прокручиваемым видом.

Ответ 7

Отличное объяснение здесь:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout размещает элементы рядом друг с другом либо горизонтально, либо вертикально.

RelativeLayout помогает вам упорядочить элементы пользовательского интерфейса на основе определенных правил. Вы можете указать правила, такие как: выровняйте это по левому краю родителей, поместите это слева/справа от этих элементов и т.д.

AbsoluteLayout предназначен для абсолютного позиционирования, т.е. вы можете указать точные координаты, куда должен идти вид.

FrameLayout позволяет размещать представления вдоль оси Z. Это означает, что вы можете размещать элементы представления один над другим.