LinearLayout,RelativeLayout和AbsoluteLayout有什么区别?

ezh*_*hil 173 android android-layout android-linearlayout android-relativelayout android-framelayout

我对LinearLayout,RelativeLayout和AbsoluteLayout之间的区别感到困惑.有人可以告诉我他们之间的确切差异吗?

Gan*_*y C 200

LinearLayout 意味着您可以逐个(垂直/水平)对齐视图.

RelativeLayout 是指基于其父母和其他观点的观点关系.

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

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

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

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

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

  • @Fry我在2年前回答了这个问题.请阅读问题. (3认同)
  • 检查此链接也是dude .. http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts (2认同)
  • AbsoluteLayout已弃用! (2认同)

Dev*_*ath 48

定义:

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

更多信息:

FrameLayout

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

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

RelativeLayout

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

(这里的当前文档)

TableLayout

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

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


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


小智 5

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

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

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

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