В чем разница между LinearLayout, RelativeLayout и AbsoluteLayout?

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




Ответы (5)


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

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

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

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

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

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

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

person Ganapathy C    schedule 05.02.2011
comment
Проверьте также эту ссылку, чувак. /история/ - person Ganapathy C; 05.02.2011
comment
AbsoluteLayout устарел! - person Fry; 04.12.2013
comment
@ Фрай, я ответил на это до 2 лет. Пожалуйста, прочитайте вопрос. - person Ganapathy C; 04.12.2013
comment
По-видимому, AbsoluteLayout устарел по какой-то причине; если контент не подходит, он случайным образом разбрасывает вещи. Вам лучше использовать LinearLayout и установить все его отступы на 0. - person EpicPandaForce; 15.11.2015

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

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

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

FrameLayout

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

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

RelativeLayout

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

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

TableLayout

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

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


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

person Devrath    schedule 13.09.2014

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

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

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

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

person Raghvendra Tolia    schedule 04.02.2016

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

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

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

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

person Tulsi    schedule 02.01.2017

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

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

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

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

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

person taha027    schedule 10.10.2016