LinearLayout,RelativeLayout和AbsoluteLayout有什么区别?


Answers:


213

LinearLayout 表示您可以一一对齐视图(垂直/水平)。

RelativeLayout 指基于其父母的观点与其他观点之间的关系。

ConstraintLayout 与RelativeLayout相似,因为它使用关系来调整位置和大小小部件,但具有更大的灵活性,并且在布局编辑器中更易于使用。

WebView 加载html,静态或动态页面。

FrameLayout 要将孩子放在另一个上面,就像卡片在框架内一样,我们可以将一个子放置在另一个之上或框架内的任何位置。

不推荐使用- AbsoluteLayout意味着您必须给出视图应位于的确切位置。

有关更多信息,请检查此地址https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts


2
也请检查此链接dude ..mobiforge.com/designing/story/…
Ganapathy C

2
AbsoluteLayout已弃用!

3
@Fry我在两年前回答了这个问题。请阅读问题。
Ganapathy C 2013年

显然AbsoluteLayout是出于某种原因而弃用的;如果内容不适合,则会随机抛出。最好使用a LinearLayout并将其所有填充都设置为0
EpicPandaForce 2015年

50

定义:

  • 框架布局:设计用于遮挡屏幕上的某个区域以显示单个项目。
  • 线性布局:将其子级排列在单列或单行中的布局。
  • 相对布局:此布局是一个视图组,在相对位置显示子视图。
  • 表格布局:一种将其子级排列成行和列的布局。

更多信息:

FrameLayout

FrameLayout旨在遮挡屏幕上的某个区域以显示单个项目。通常,应使用FrameLayout来保存单个子视图,因为在子视图彼此不重叠的情况下,难以以可扩展到不同屏幕尺寸的方式组织子视图。但是,您可以将多个子项添加到FrameLayout中,并通过使用android:layout_gravity属性为每个子项分配重力来控制它们在FrameLayout中的位置。

子视图以堆栈形式绘制,最近添加的子视图位于顶部。FrameLayout的大小是其最大子项(加上填充)的大小(可见或不可见)(如果FrameLayout的父项允许)。

RelativeLayout

RelativeLayout是用于设计用户界面的非常强大的实用程序,因为它可以消除嵌套视图组并保持布局层次结构平坦,从而提高性能。如果发现自己使用了多个嵌套的LinearLayout组,则可以用一个RelativeLayout替换它们。

此处为当前文档)

TableLayout

TableLayout由多个TableRow对象组成,每个对象都定义一行(实际上,您可以具有其他子代,下面将对其进行说明)。TableLayout容器不显示其行,列或单元格的边界线。每行有零个或多个单元格;每个单元格可以容纳一个View对象。该表的列与单元格最多的行一样多。表格可以将单元格留空。单元格可以跨列,就像在HTML中一样。

列的宽度由该列中具有最宽单元格的行定义。


注意:绝对布局已弃用。


4

LinearLayout:将其子级组织为单个水平或垂直行的布局。如果窗口的长度超过屏幕的长度,它将创建一个滚动条,这意味着您可以将视图一一对齐(垂直/水平)。

RelativeLayout:这使您可以指定子对象之间的相对位置(子A到子B的左侧)或父对象(与父对象的顶部对齐)。它基于其父视图和其他视图之间的关系。

WebView:加载html,静态或动态页面。

有关更多信息,请参见以下链接:http : //developer.android.com/guide/topics/ui/layout-objects.html


4

LinearLayout-在LinearLayout中,视图以垂直或水平方向组织。

RelativeLayout -RelativeLayout比LinearLayout更复杂,因此提供了更多功能。顾名思义,视图是相对于彼此放置的。

FrameLayout-它表现为单个对象,并且其子视图彼此重叠。FrameLayout采用最大子元素的大小。

协调器布局 -这是Android支持库中引入的功能最强大的ViewGroup。它具有FrameLayout的功能,并具有许多功能可在其子视图之间进行协调,例如,浮动按钮和小吃栏,具有可滚动视图的工具栏。


2

很棒的解释在这里:https :
//www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout将元素水平或垂直并排排列。

RelativeLayout帮助您根据特定规则安排UI元素。您可以指定以下规则:将其对齐到父级的左边缘,将其放置在此元素的左/右等。

AbsoluteLayout用于绝对定位,即您可以指定视图应到达的确切坐标。

FrameLayout允许沿Z轴放置视图。这意味着您可以将视图元素一个堆叠在另一个之上。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.