在Android应用程序中,一个视图有很多的控件,如何才能控制这些控件的位置和排列?在网页中我们可以通过Html中的table,div来布局,在Android中我们通过Layout实现布局。
在Android中主要有以下几种Layout:
- LinearLayout
LinearLayout线性布局,包含在LinearLayout里面的控件按顺序排列成一行或者一列。
主要介绍下他的两个主要的属性:
-
- Orientation——方向,当设置为Horizon时,Layout中的控件将排成一行,当设置为Vertical时,Layout中的控件将排成一行。
- FillMode——填充方式,即设置android:layout_width和android:layout_height,可以为三种值:具体的像素值、wrap_content, 表示按控件中文本实际长度显示 、 fill_parent, 表示填充剩下的所有可用空间。具体的例子可以在官网上查看,这里就不在举例了。
- RelativeLayout
RelativeLayout相对布局,它是依靠与父容器或同在一容器中其它控件的相对位置来定位的。
两种情况下的共四种主要属性:
-
- 相对父容器:
android:layout_alignParentTop: 控件的顶部与父容器的顶部对齐。
android:layout_alignParentBottom:控件的底部与父容器的底部对齐。
android:layout_alignParentLeft:控件左边与父容器的左边缘对齐。
android:layout_alignParentRight:控件右边与父容器的右边缘对齐。
-
- 相对同一容器中的其它控件:
android:layout_above: 表示此控件在另一控件的上面。
android:layout_below:表示此控件在另一个控件的下面。
android:layout_toLeftOf:表示此控件在另一个控件的左边。
android:layout_toRightOf:表示此控件在另一个控件的右边。
android:layout_alignTop: 表示此控件与另一控件顶部对齐。
android:layout_alignBottom:表示此控件与另一控件底部对齐。
android:layout_alignLeft:表示此控件与另一个控件左对齐。
android:layout_alignRight:表示此控件与另一个控件右对齐。
例子请查看官方网站的例子。
- TableLayout
表格布局,类似于HTML的Table。通过TableRow来定义一行,如果一个控件占用多列可以设置android:layout_span, 类似于HTML中Table的colspan。默认情况下一个控件是按顺序放置在每一列的(column 0, column 1….), 也可以通过android:layout_column指定放在哪一列。如果一列内容过长或者过短,可以通过android:stretchColumns和android:shrinkColumns来增加或者减少此列的宽度。
例子请查看官方网站的例子。
- AbsoluteLayout
绝对布局,就是Android不提供任何布局控制,而是由我们自己通过X坐标,Y坐标来控制组件的位置,在这个容器里面的组件位置、大小都需要我们自己来控制。
layout_x :制定该子组件的x坐标。
layout_y:制定该子组件的y坐标