188

我对 LinearLayout、RelativeLayout 和 AbsoluteLayout 之间的区别感到困惑。有人可以告诉我它们之间的确切区别吗?

4

5 回答 5

226

LinearLayout意味着您可以一一对齐视图(垂直/水平)。

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

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

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

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

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

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

于 2011-02-05T06:00:44.313 回答
54

定义:

  • 框架布局:这旨在阻止屏幕上的一个区域以显示单个项目。
  • 线性布局:将其子项排列在单列或单行中的布局。
  • 相对布局:此布局是一个视图组,在相对位置显示子视图。
  • 表格布局:将其子项排列成行和列的布局。

更多信息:

FrameLayout

FrameLayout 旨在阻止屏幕上的一个区域以显示单个项目。通常,应该使用 FrameLayout 来保存单个子视图,因为很难以一种可缩放到不同屏幕尺寸的方式来组织子视图,而不会使子视图相互重叠。但是,您可以将多个子项添加到 FrameLayout 并通过使用android:layout_gravity属性为每个子项分配重力来控制它们在 FrameLayout 中的位置。

子视图绘制在堆栈中,最近添加的子视图在顶部。FrameLayout 的大小是其最大子项(加上填充)的大小,可见与否(如果 FrameLayout 的父项允许)。

RelativeLayout

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

(当前文档在这里

TableLayout

一个 TableLayout 由许多TableRow对象组成,每个对象定义一行(实际上,您可以有其他子对象,这将在下面解释)。TableLayout 容器不会为其行、列或单元格显示边框线。每行有零个或多个单元格;每个单元格可以容纳一个 View 对象。该表的列数与单元格最多的行一样多。表格可以将单元格留空。单元格可以跨列,就像在 HTML 中一样。

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


注意:不推荐使用绝对布局。

于 2014-09-13T16:34:17.810 回答
5

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

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

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

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

于 2016-02-04T07:03:43.507 回答
4

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

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

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

Coordinator Layout - 这是 Android 支持库中引入的最强大的 ViewGroup。它的行为类似于 FrameLayout,并且有很多功能可以在其子视图之间进行协调,例如,浮动按钮和小吃栏、带有可滚动视图的工具栏。

于 2017-01-02T08:41:16.857 回答
3

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

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

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

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

FrameLayout允许沿 Z 轴放置视图。这意味着您可以将视图元素一层一层地堆叠起来。

于 2016-10-10T09:16:36.550 回答