какая разница между linearlayout и relativelayout
Android. Различия в разметках FrameLayout, RelativeLayout, LinearLayout и TableLayout
Рассмотрим принципиальные отличительные черты четырех типов разметки в Android: FrameLayout, RelativeLayout, LinearLayout и TableLayout.
FrameLayout
LinearLayout

Рис 1. LinearLayout. Вертикальная ориентация
Чтобы получить горизонтальное размещение, достаточно изменить атрибут android:orientation, присвоив ему значение horizontal:

Рис 2. LinearLayout. Горизонтальная ориентация
Если Вы хотите, чтобы последний элемент “заливал” оставшееся на строке пространство, необходимо изменить его атрибут android:layout_width, присвоив значение: fill_parent:
Результат выполнения этого примера показан на рис. 3:

Рис 3. LinearLayout. Горизонтальная ориентация с использованием fill_parent

Рис 4. LinearLayout. Горизонтальная ориентация с использованием layout_weight
Как видно с Рис. 4, наибольшее пространство занимает Button2 из-за того, что имеет самый высокий layout_weight=”2″ среди остальных элементов. Button1 имеет вес 1 и поэтому занимает немного меньше пространства, чем Button2. Кнопка с самым низким весом, Button3, занимает меньше всего пространства.
Если бы кнопки Button1 и Button2 имели одинаковый вес, то занимали бы одинаковое пространство. А вот так располагаются кнопки в случае одинакового значения layout_weight:

Рис 5. LinearLayout. Горизонтальная ориентация с одинаковым layout_weight
TableLayout
TableLayout позволяет создавать разметку по подобию таблицы в html. Строка таблицы, TableRow, может не иметь ячеек или иметь несколько ячеек. Допускается также ячейки типа ViewGroup. То есть, ячейка может быть другим типом разметки, в том числе и TableLayout. Пример TableLayout:

Рис 6. TableLayout
Для дочерних элементов так же как и в LinearLayout может использоваться свойство layout_weight. Изменим следующим образом пример: установим атрибут android:layout_weight=”1″ для элементов btn4, btn5 и btn6:

Рис 7. TableLayout с использованием layout_weight
Чтобы выровнять таблицу вертикально по центру, необходимо добавить атрибут android:gravity=”center” в TableLayout:

Рис 8. TableLayout с gravity=center
А чтобы выровнять по центру каждую строчку достаточно добавить атрибут android:gravity=”center” во все три TableRow:

Рис 9. TableLayout с атрибутом gravity в TableRow
Исходный код получившейся разметки представлен ниже:
RelativeLayout
Первым элементом в списке размещения является кнопка с идентификатором btn1, однако фактически она будет второй слева. Это произойдет потому что слева от нее будет располагаться кнопка btn2, следуя инструкции layout_toLeftOf=”@id/btn1″ (переводится как “слева от btn1”). А кнопка btn3 будет всегда располагаться справа от btn1, следуя инструкции layout_toRightOf=”@id/btn1″ (переводится как “справа от btn1″). Горизонтальное расположение btn1 по центру достигается благодаря атрибуту layout_centerHorizontal=”true”. Результат выполнения этого кода представлен на Рис. 10.

Рис 10. RelativeLayout. toLeftOf и toRightOf
Рассмотрим еще 2 атрибута, которые могут быть использованы в RelativeLayout: layout_above и layout_below. Атрибут layout_above означает, что элемент будет располагаться над элементом, указанным в атрибуте. В свою очередь, атрибут layout_below означает, что элемент будет располагаться под указанным в атрибуте элементом. Пример:
Результат выполнения этого кода представлен на Рис.11.

Рис 11. RelativeLayout. layout_above и layout_below
Каковы различия между LinearLayout, RelativeLayout и AbsoluteLayout?
Я смущен различием между LinearLayout, RelativeLayout и AbsoluteLayout. Может кто-нибудь, пожалуйста, скажите мне точные различия между ними?
LinearLayout означает, что вы можете выравнивать представления по одному (по вертикали / по горизонтали).
RelativeLayout означает основанное на отношении взглядов родителей и других взглядов.
ConstraintLayout похож на RelativeLayout на то, что он использует отношения для виджетов по размеру и размеру, но обладает дополнительной гибкостью и проще использовать в редакторе макетов.
WebView для загрузки html, статических или динамических страниц.
FrameLayout для загрузки ребенка один над другим, например карты внутри рамки, мы можем разместить один над другим или где-нибудь внутри рамки.
Устаревший – AbsoluteLayout означает, что вам нужно дать точную позицию, где должно быть представление.
Для получения дополнительной информации, пожалуйста, проверьте этот адрес http://developer.android.com/guide/topics/ui/layout-objects.html
FrameLayout : макет, который выступает в качестве рамки представления для отображения одного объекта.
RelativeLayout : позволяет указать местоположение дочерних объектов относительно друг друга (дочерний элемент A слева от дочернего B) или родительский элемент (выровненный по верхней части родителя).
LinearLayout : макет, который организует своих детей в одну горизонтальную или вертикальную строку.
TableLayout : табличный макет с произвольным количеством строк и столбцов, каждая ячейка содержит виджет по вашему выбору. Строки изменяются в соответствии с наибольшим столбцом. Границы ячеек не видны.
Определения:
Больше информации:
FrameLayout :: 

Примечание : – Абсолютная компоновка лишена
Источник : Android Developers
2) LinearLayout – Линейная компоновка выравнивает каждый дочерний вид в вертикальной или горизонтальной линии. Вертикальная компоновка имеет столбец «Представления», а горизонтальный макет имеет ряд представлений. Linear Layout поддерживает weight attribute for each child View that can control the relative size of each child View within the available space.
LinearLayout: макет, который организует своих детей в одну горизонтальную или вертикальную строку. Он создает полосу прокрутки, если длина окна превышает длину экрана. Это означает, что вы можете выровнять точки один за другим (по вертикали / по горизонтали).
RelativeLayout: позволяет указать местоположение дочерних объектов относительно друг друга (дочерний элемент A слева от дочернего B) или родительский (выровненный в верхней части родителя). Он основан на отношении взглядов родителей и других взглядов.
WebView: загрузка html, статических или динамических страниц.
LinearLayout упорядочивает элементы бок о бок либо горизонтально, либо вертикально (строки против столбцов).
RelativeLayout – это менеджер компоновки, который помогает вам упорядочивать элементы пользовательского интерфейса на основе некоторого правила. Вы можете указать такие вещи, как: выровнять это по левому краю родителей, поместить это влево / вправо от этих элементов и т. Д.
AbsoluteLayout предназначен для абсолютного позиционирования, то есть вы можете указать точные координаты, где должно идти представление.
FrameLayout позволяет размещение по оси Z. То есть вы можете складывать элементы представления один над другим.
LinearLayout – в LinearLayout представления организованы либо в вертикальной, либо в горизонтальной ориентации.
RelativeLayout – RelativeLayout – это более сложный способ, чем LinearLayout, следовательно, предоставляет множество функций. Представления размещаются так, как следует из названия относительно друг друга.
FrameLayout – он ведет себя как отдельный объект, а его дочерние представления перекрываются друг над другом. FrameLayout принимает размер в соответствии с самым большим дочерним элементом.
Координатор Layout – это самая мощная ViewGroup, представленная в библиотеке поддержки Android. Он работает как FrameLayout и имеет множество функций для координации между его дочерними представлениями. Например, плавающая кнопка и закусочная, панель инструментов с прокручиваемым видом.
В чем разница между LinearLayout, RelativeLayout и AbsoluteLayout?
Меня смущает разница между LinearLayout, RelativeLayout и AbsoluteLayout. Может кто-нибудь сказать мне точные различия между ними?
5 ответов
LinearLayout означает, что вы можете выравнивать виды один за другим (по вертикали / горизонтали).
RelativeLayout означает на основе отношения взглядов своих родителей и других взглядов.
ConstraintLayout похож на RelativeLayout в том, что он использует отношения для размещения и размера виджетов, но обладает дополнительной гибкостью и его проще использовать в редакторе макета.
WebView для загрузки HTML, статических или динамических страниц.
FrameLayout для загрузки дочерних элементов друг над другом, как карточки внутри фрейма, мы можем разместить одну над другой или в любом месте внутри фрейма.
LinearLayout размещает элементы бок о бок по горизонтали или вертикали.
RelativeLayout помогает упорядочить элементы пользовательского интерфейса в соответствии с определенными правилами. Вы можете указать такие правила, как: выровняйте это по левому краю родителя, поместите это слева / справа от этого элемента и т. Д.
AbsoluteLayout предназначен для абсолютного позиционирования, т. е. вы можете указать точные координаты, в которых должно идти представление.
FrameLayout позволяет размещать виды по оси Z. Это означает, что вы можете размещать элементы представления один над другим.
LinearLayout: макет, который объединяет дочерние элементы в одну горизонтальную или вертикальную строку. Он создает полосу прокрутки, если длина окна превышает длину экрана. Это означает, что вы можете выровнять представления один за другим (по вертикали / горизонтали).
RelativeLayout: позволяет указать расположение дочерних объектов относительно друг друга (дочерний объект A слева от дочернего B) или родительского (выровненный по верхнему краю родительского объекта). Он основан на соотношении взглядов родителей и других взглядов.
WebView: для загрузки HTML, статических или динамических страниц.
Определения:
Дополнительная информация:
Ширина столбца определяется строкой с самой широкой ячейкой в этом столбце.
Каковы различия между LinearLayout, RelativeLayout и AbsoluteLayout?
Я смущен различием между LinearLayout, RelativeLayout и AbsoluteLayout.
Может кто-нибудь, пожалуйста, скажите мне, какие именно различия между ними?
LinearLayout означает, что вы можете выровнять виды по одному (по вертикали/по горизонтали).
RelativeLayout означает на основе отношения взглядов своих родителей и других взглядов.
ConstraintLayout похож на RelativeLayout в том, что он использует отношения для позиционирования и размера виджетов, но имеет дополнительную гибкость и его легче использовать в редакторе макетов.
WebView для загрузки HTML, статических или динамических страниц.
FrameLayout для загрузки дочерних FrameLayout друг над другом, подобно карточкам внутри фрейма, мы можем разместить одну над другой или в любом месте фрейма.
FrameLayout : макет, который выступает в качестве кадра представления для отображения одного объекта.
RelativeLayout : Позволяет указать расположение дочерних объектов относительно друг друга (дочерний элемент A слева от дочернего B) или родительский (выровненный по верхней части родителя).
LinearLayout : макет, который организует его дочерние объекты в одну горизонтальную или вертикальную строку.
TableLayout : табличный макет с произвольным количеством строк и столбцов, каждая ячейка содержит виджет по вашему выбору. Строки изменяются в соответствии с наибольшим столбцом. Границы ячейки не видны.
Определения:
- Структура кадра: это разработано, чтобы заблокировать область на экране, чтобы отобразить единственный элемент. Линейный макет: макет, который размещает своих дочерних элементов в один столбец или одну строку. Относительный макет: этот макет представляет собой группу представлений, которая отображает дочерние представления в относительных положениях. Макет таблицы: макет, который размещает своих дочерних элементов в строки и столбцы.
Дополнительная информация:
Ширина столбца определяется строкой с самой широкой ячейкой в этом столбце.
Примечание. Абсолютная компоновка устарела.
Каковы различия между LinearLayout, RelativeLayout и AbsoluteLayout?
Я смущен различием между LinearLayout, RelativeLayout и AbsoluteLayout. Может кто-нибудь, пожалуйста, скажите мне, какие именно различия между ними?
ОТВЕТЫ
Ответ 1
LinearLayout означает, что вы можете выровнять виды по одному (по вертикали/по горизонтали).
RelativeLayout означает на основе отношения взглядов своих родителей и других взглядов.
ConstraintLayout похож на RelativeLayout в том, что он использует отношения для позиционирования и размера виджетов, но имеет дополнительную гибкость и его легче использовать в редакторе макетов.
WebView для загрузки HTML, статических или динамических страниц.
FrameLayout для загрузки дочерних FrameLayout друг над другом, подобно карточкам внутри фрейма, мы можем разместить одну над другой или в любом месте фрейма.
Ответ 2
FrameLayout : макет, который выступает в качестве кадра представления для отображения одного объекта.
RelativeLayout : Позволяет указать расположение дочерних объектов относительно друг друга (дочерний элемент A слева от дочернего B) или родительский (выровненный по верхней части родителя).
LinearLayout : макет, который организует его дочерние объекты в одну горизонтальную или вертикальную строку.
TableLayout : табличный макет с произвольным количеством строк и столбцов, каждая ячейка содержит виджет по вашему выбору. Строки изменяются в соответствии с наибольшим столбцом. Границы ячейки не видны.
Ответ 3
Определения:
Дополнительная информация:
Ширина столбца определяется строкой с самой широкой ячейкой в этом столбце.
Примечание. Абсолютная компоновка устарела.
Ответ 4
Добавление нескольких дочерних элементов для каждого нового ребенка сверху предыдущего, 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.
Ответ 5
LinearLayout: Макет, который организует своих детей в одну горизонтальную или вертикальную строку. Он создает полосу прокрутки, если длина окна превышает длину экрана. Это означает, что вы можете выравнивать представления один за другим (по вертикали/по горизонтали).
RelativeLayout:. Это позволяет указать расположение дочерних объектов относительно друг друга (дочерний элемент A слева от дочернего B) или родительский (выровненный по верхней части родителя). Он основан на отношении взглядов родителей и других взглядов.
WebView: для загрузки html, статических или динамических страниц.
Ответ 6
Ответ 7
LinearLayout размещает элементы рядом друг с другом либо горизонтально, либо вертикально.
RelativeLayout помогает вам упорядочить элементы пользовательского интерфейса на основе определенных правил. Вы можете указать правила, такие как: выровняйте это по левому краю родителей, поместите это слева/справа от этих элементов и т.д.
AbsoluteLayout предназначен для абсолютного позиционирования, т.е. вы можете указать точные координаты, куда должен идти вид.
FrameLayout позволяет размещать представления вдоль оси Z. Это означает, что вы можете размещать элементы представления один над другим.

