Які відмінності між LinearLayout, RelativeLayout та AbsoluteLayout?


Відповіді:


213

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

RelativeLayout засоби, засновані на співвідношенні поглядів батьків та інших поглядів.

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

WebView для завантаження HTML, статичних або динамічних сторінок.

FrameLayout щоб завантажити дитину одна над одною, як картки всередині кадру, ми можемо розміщувати одну над іншою або будь-де всередині кадру.

застарілий - AbsoluteLayout означає, що ви повинні вказати точне місце, де має бути погляд.

Для отримання додаткової інформації перевірте цю адресу https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts


2
Перевірте це посилання також чувак .. mobiforge.com/designing/story/…
C

2
AbsoluteLayout застаріло!
Смажити

3
@Fry я відповів на це раніше 2 років. Прочитайте, будь ласка, питання.
Ганапатія C

Мабуть AbsoluteLayout, застаріла з причини; якщо вміст не підходить, він випадковим чином кидає речі. Вам краще з a LinearLayoutі встановити всі його прокладки на 0.
EpicPandaForce

50

Визначення:

  • Макет кадру: призначений для блокування області на екрані для відображення одного елемента.
  • Лінійний макет: макет, який розташовує своїх дітей в одному стовпчику або в одному рядку.
  • Відносний макет: Цей макет являє собою групу переглядів, яка відображає подання дітей у відносних положеннях.
  • Макет таблиці: макет, який упорядковує своїх дітей у рядки та стовпці.

Більше інформації:

FrameLayout

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

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

RelativeLayout

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

(Поточні документи тут )

TableLayout

Таблиця складається з декількох TableRowоб'єктів, кожен з яких визначає рядок (насправді ви можете мати інших дітей, що буде пояснено нижче). Контейнери TableLayout не відображають межі рядків для їх рядків, стовпців чи комірок. Кожен рядок має нуль або більше комірок; кожна комірка може містити один об'єкт View. Таблиця має стільки стовпців, скільки рядків із найбільшою кількістю комірок. Таблиця може залишити клітинки порожніми. Клітини можуть охоплювати стовпці, як це можливо в HTML.

Ширина стовпця визначається рядком із найширшою коміркою у цьому стовпці.


Примітка : Абсолютна макет застаріла.


4

LinearLayout: макет, який організовує своїх дітей у єдиний горизонтальний або вертикальний ряд. Він створює смугу прокрутки, якщо довжина вікна перевищує довжину екрана. Це означає, що ви можете вирівняти погляди один за одним (вертикально / горизонтально).

RelativniLayout: Це дозволяє вказати розташування дочірніх об'єктів відносно один одного (дочірня A ліворуч від дитини B) або батьківського (вирівняне вгорі батьківського). Він заснований на співвідношенні поглядів батьків та інших поглядів.

WebView: для завантаження HTML, статичних або динамічних сторінок.

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


4

LinearLayout - у LinearLayout представлення організовані у вертикальній чи горизонтальній орієнтації.

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

FrameLayout - Він поводиться як один об'єкт, і його дочірні погляди перекриваються один над одним. FrameLayout приймає розмір відповідно до найбільшого дочірнього елемента.

Макет координатора - це найпотужніший ViewGroup, представлений у бібліотеці підтримки Android. Він поводиться як FrameLayout і має безліч функцій для координації між своїми дочірніми переглядами, наприклад, плаваючою кнопкою та закусочною панеллю, Панель інструментів із видом прокрутки.


2

Чудове пояснення тут:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout розташовує елементи поруч або горизонтально, або вертикально.

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

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

FrameLayout дозволяє розміщувати подання вздовж осі Z. Це означає, що ви можете складати елементи перегляду один над одним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.