Меня смущает разница между LinearLayout, RelativeLayout и AbsoluteLayout. Может ли кто-нибудь сказать мне точные различия между ними?
Ответы:
LinearLayout
означает, что виды можно выравнивать по одному (по вертикали / горизонтали).
RelativeLayout
означает, что основывается на соотношении взглядов родителей и других взглядов.
ConstraintLayout
похож на RelativeLayout в том, что он использует отношения для размещения и размера виджетов, но обладает дополнительной гибкостью и его проще использовать в редакторе макета.
WebView
для загрузки html, статических или динамических страниц.
FrameLayout
чтобы загрузить дочерние элементы друг над другом, как карточки внутри фрейма, мы можем разместить одну над другой или в любом месте внутри фрейма.
устаревший - AbsoluteLayout
означает, что вы должны указать точное положение, в котором должно быть представление.
Для получения дополнительной информации проверьте этот адрес https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts.
AbsoluteLayout
не рекомендуется по какой-то причине; если контент не подходит, он случайным образом разбрасывает вещи. Вам лучше использовать a LinearLayout
и установить для всех его отступов значение 0
.
FrameLayout предназначен для блокировки области на экране для отображения одного элемента. Как правило, FrameLayout следует использовать для хранения одного дочернего представления, потому что может быть сложно организовать дочерние представления таким образом, чтобы можно было масштабировать их до разных размеров экрана, без наложения дочерних элементов друг на друга. Однако вы можете добавить несколько дочерних элементов в FrameLayout и управлять их положением в FrameLayout, назначив каждому дочернему элементу гравитацию с помощью
android:layout_gravity
атрибута.Дочерние представления рисуются в стеке, причем последний добавленный дочерний элемент находится наверху. Размер FrameLayout - это размер его самого большого дочернего элемента (плюс заполнение), видимого или невидимого (если родительский элемент FrameLayout позволяет).
RelativeLayout - очень мощная утилита для разработки пользовательского интерфейса, поскольку она может исключить вложенные группы представлений и сохранить плоскую иерархию макета, что повышает производительность. Если вы обнаружите, что используете несколько вложенных групп LinearLayout, вы можете заменить их одним RelativeLayout.
(Текущие документы здесь )
TableLayout состоит из ряда
TableRow
объектов, каждый из которых определяет строку (на самом деле у вас могут быть другие дочерние объекты, что будет объяснено ниже). Контейнеры TableLayout не отображают линии границ для своих строк, столбцов или ячеек. Каждая строка имеет ноль или более ячеек; каждая ячейка может содержать один объект просмотра. В таблице столько столбцов, сколько в строке с наибольшим количеством ячеек. Таблица может оставлять ячейки пустыми. Ячейки могут охватывать столбцы, как и в HTML.Ширина столбца определяется строкой с самой широкой ячейкой в этом столбце.
Примечание . Абсолютный макет устарел.
LinearLayout: макет, который организует дочерние элементы в одну горизонтальную или вертикальную строку. Он создает полосу прокрутки, если длина окна превышает длину экрана. Это означает, что вы можете выровнять виды один за другим (по вертикали / горизонтали).
RelativeLayout: позволяет указать расположение дочерних объектов относительно друг друга (дочерний элемент A слева от дочернего элемента B) или родительского объекта (выровнен по верхнему краю родительского объекта). Он основан на соотношении взглядов родителей и других взглядов.
WebView: для загрузки html, статических или динамических страниц.
Для получения дополнительной информации перейдите по этой ссылке: http://developer.android.com/guide/topics/ui/layout-objects.html.
LinearLayout - в LinearLayout представления организованы в вертикальной или горизонтальной ориентации.
RelativeLayout - RelativeLayout намного сложнее, чем LinearLayout, поэтому предоставляет гораздо больше функциональных возможностей. Виды размещаются, как следует из названия, относительно друг друга.
FrameLayout - он ведет себя как единый объект, а его дочерние представления перекрываются друг с другом. FrameLayout принимает размер самого большого дочернего элемента.
Макет координатора - это самая мощная ViewGroup, представленная в библиотеке поддержки Android. Он ведет себя как FrameLayout и имеет множество функций для координации между его дочерними представлениями, например, плавающую кнопку и панель закусок, панель инструментов с прокручиваемым представлением.
Отличное объяснение здесь:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android
LinearLayout размещает элементы бок о бок по горизонтали или вертикали.
RelativeLayout помогает упорядочить элементы пользовательского интерфейса на основе определенных правил. Вы можете указать такие правила, как: выровняйте это по левому краю родителя, поместите это слева / справа от этого элемента и т. Д.
AbsoluteLayout предназначен для абсолютного позиционирования, т. Е. Вы можете указать точные координаты, в которых должно идти представление.
FrameLayout позволяет размещать виды по оси Z. Это означает, что вы можете размещать элементы представления один над другим.