线性布局 ::
单击此处 ---- 获取关于线性布局的Android文档参考
相对布局 ::
单击此处 ---- 获取有关相对布局的Android文档参考
优化::请查看优化布局层次结构
视图越少,越好::
在布局设计中,最重要的目标是使用尽可能少的视图(Views)。你拥有的视图越少,应用程序运行就会更快。过多的View嵌套会进一步减缓应用程序的速度。
相较于LinearLayout,RelativeLayout层次结构通常使用更少的Views并且具有更扁平的树形结构。对于LinearLayout,每次想要改变视图的方向时都必须创建一个新的LinearLayout——这就创建了额外的Views以及更深层次的嵌套。因此,在任何具有复杂性的布局中,建议首先使用RelativeLayout。这样做很可能会减少视图数量和视图层次的深度。
线性布局会将每个子元素依次排列在一条线上,可以水平或垂直排列。而相对布局则允许您为每个子元素指定LayoutParam,以精确说明它在父元素内的位置关系,或者相对于其他子元素的位置关系。
LinearLayout
LinearLayout将所有子视图沿单一方向对齐,即垂直或水平方向,具体取决于您定义的方向属性。
RelativeLayout
RelativeLayout允许子视图相对于父视图或彼此指定位置(由ID指定)。
区别很简单:在LinearLayout中,我们按线性方式排列物品(一个接一个),而在RelativeLayout中,我们可以将物品放置在屏幕的任何位置。
=> LinearLayout按列表方式排列。 其余功能相似。
Android中LinearLayout
的特征之一是使用一个名为Weight的属性,应用可以使用android:layout_weight
指定。该属性根据视图所需占用屏幕的空间大小分配“重要性”值。
另一方面,RelativeLayout
不支持权重或者说RelativeLayout
不关注android:layout_weight
。这是LinearLayout.LayoutParams
的一个属性,而不是RelativeLayout.LayoutParams
的属性。
RelativeLayout
比LinearLayout
更灵活,但如果您对LinearLayout
有适当的了解,也可以使用它。
对于LinearLayout
,每个属性都由开发人员硬编码为具有重要位置。
对于RelativeLayout
,您可以通过与其他属性相关联来更改位置。
以下链接可以通过视觉方式解释布局如何工作 "Visually"
http://www.droiddraw.org/
向窗口添加一些组件并混合布局以查看发生了什么,这是我学习每个组件功能的方法。