ChatGPT解决这个技术问题 Extra ChatGPT

LinearLayout、RelativeLayout 和 AbsoluteLayout 有什么区别?

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


G
Ganapathy C

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

RelativeLayout 表示基于其父视图与其他视图的关系。

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

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

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

已弃用 - AbsoluteLayout 表示您必须给出视图应位于的确切位置。

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


检查这个链接也老兄.. mobiforge.com/designing/story/…
AbsoluteLayout 已弃用!
@Fry 我在 2 年前回答了这个问题。请阅读问题。
显然 AbsoluteLayout 已被弃用是有原因的;如果内容不合适,它会随机扔东西。最好使用 LinearLayout 并将其所有填充设置为 0
C
Community

定义:

框架布局:这旨在阻止屏幕上的一个区域以显示单个项目。

线性布局:将其子项排列在单列或单行中的布局。

相对布局:此布局是一个视图组,在相对位置显示子视图。

表格布局:将其子项排列成行和列的布局。

更多信息:

FrameLayout

FrameLayout 旨在阻止屏幕上的一个区域以显示单个项目。通常,应该使用 FrameLayout 来保存单个子视图,因为很难以一种可缩放到不同屏幕尺寸的方式来组织子视图,而不会使子视图相互重叠。但是,您可以使用 android:layout_gravity 属性将多个子项添加到 FrameLayout 并通过为每个子项分配重力来控制它们在 FrameLayout 中的位置。子视图绘制在堆栈中,最近添加的子视图在顶部。 FrameLayout 的大小是其最大子项(加上填充)的大小,可见与否(如果 FrameLayout 的父项允许)。

RelativeLayout

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

(当前文档 here

TableLayout

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

注意:绝对布局已弃用。


R
Raghvendra Tolia

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

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

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

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


P
Pang

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

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

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

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


P
Pang

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

LinearLayout 将元素水平或垂直并排排列。 RelativeLayout 可帮助您根据特定规则排列 UI 元素。您可以指定以下规则:将其与父级的左边缘对齐,将其放置在此元素的左/右等。AbsoluteLayout 用于绝对定位,即您可以指定视图应该去的确切坐标。 FrameLayout 允许沿 Z 轴放置视图。这意味着您可以将视图元素一层一层地堆叠起来。