Каковы различия между LinearLayout, RelativeLayout и AbsoluteLayout? - PullRequest
169 голосов
/ 05 февраля 2011

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

Ответы [ 5 ]

196 голосов
/ 05 февраля 2011

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

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

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

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

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

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

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

48 голосов
/ 13 сентября 2014

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

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

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

FrameLayout

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

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

RelativeLayout

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

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

TableLayout

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

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


Примечание : Абсолютный формат устарел.

4 голосов
/ 02 января 2017

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

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

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

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

4 голосов
/ 04 февраля 2016

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

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

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

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

2 голосов
/ 10 октября 2016

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

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

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

...