LinearLayout、 RelativeLayout 和 AbsoluteLayout 之间的区别是什么?

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

254981 次浏览

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

RelativeLayout是指基于父母意见与其他意见的关系。

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

载入 html,静态或动态页面。

FrameLayout加载子一个接一个,就像卡片在一个框架内,我们可以把一个上面的另一个或框架内的任何地方。

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

欲了解更多信息,请检查这个地址 https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts

定义:

  • 帧布局(Frame Layout) : 这是为了在屏幕上屏蔽一个区域来显示单个项目而设计的。
  • 线性布局: 将子元素排列成单列或单行的布局。
  • 相对布局: 此布局是一个视图组,用于在相对位置显示子视图。
  • Table Layout: 将其子元素排列成行和列的布局。

更多信息:

FrameLayout

FrameLayout 设计用于阻止屏幕上显示单个项目的区域。通常,FrameLayout 应该用于保存单个子视图,因为很难以可伸缩到不同屏幕大小的方式来组织子视图,而子视图又不会彼此重叠。但是,您可以向 FrameLayout 添加多个子级,并通过使用 android:layout_gravity属性为每个子级分配重力来控制它们在 FrameLayout 中的位置。

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

RelativeLayout

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

(当前文件 给你)

TableLayout

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

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


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

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

RelativeLayout: 这允许您指定子对象相对于彼此的位置(子对象 A 在子对象 B 的左边)或者相对于父对象的位置(对齐到父对象的顶部)。它是建立在父母意见与其他意见的关系之上的。

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

更多信息请参考这个链接: http://developer.android.com/guide/topics/ui/layout-objects.html

这里有一个很好的解释:
Https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout 在水平或垂直方向上并排排列元素。

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

AbsoluteLayout 用于绝对定位,也就是说,您可以指定视图应该到达的确切坐标。

FrameLayout 允许视图沿 Z 轴布局,这意味着您可以将视图元素一个叠加到另一个上面。

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

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

FrameLayout -它作为一个单独的对象运行,它的子视图相互重叠。FrameLayout 按照最大的子元素获取大小。

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