界面布局
表格布局(TableLayout)
TableLayout 与 TableRow 中的子控件可不用设置宽和高,有默认值。
表格布局(TableLayout) 的主要属性:android.collapseColumns(隐藏 TableRow 中的某列)、android.stretchColumns(当某行填充不足时,指定某列或多列扩充)、android.shrinkColumns(当某行填充过足时,指定某列或多列收缩)。
相对布局(RelativeLayout)
1.在相对布局中,被作为参考点的控件必须被添加 id 。添加 id 属性的语法为:
android:id = "@+id/自定义id名"
2.使用 id 设置参考点的语法与添加 id 相同,如:
android:layout_toRightof = "@+id/参考点id名"
3.在使用 id 时,也可使用 @id/id名 的格式,但使用这种格式必须确保此前已声明过该 id ,而 @id/id名 格式则允许对应的 id 是在后续的语句中声明的。
4.使用相对布局时,其同级的控件允许设置如下属性:
<1>layout_below/layout_above:位于某控件下面/上面,取值为参考点控件 id;
<2>layout_toLeftOf/layout_toRightOf:位于某控件左侧/右侧,取值为参考点控件 id;
<3>layout_alignLeft/layout_alignTop/layout_alignRight/layout_alignButtom:位于某控件左侧/顶端/右侧/底部,取值为参考点控件 id;
<4>layout_alignBaseline:位于某控件的基线对齐,取值为参考点控件 id;
5.使用相对布局时,其下级的控件允许设置如下属性:
<1>layout_alignParentLeft/layout_alignParentTop/layout_alignParentRight/layout_alignParentButtom:与父级的左侧/顶端/右侧/底部对齐,取值为 true 或 false;
<2>layout_centerInParent/layout_centerHorizontal/layout_centerVertical:在父级中居中/水平居中/垂直居中,取值为 true 或 false;
帧布局(FrameLayout)
- 帧布局的节点名称为 FrameLayout 。
- 在帧布局中,所有的控件都在左上角,而且任何有关位置的属性都是无效的。
- 在帧布局中,所有的控件全部堆叠在一起,后添加的控件会挡住之前添加的控件。
- 仅当后添加的控件尺寸小于之前添加的控件尺寸时,之前添加的控件才会被显示没有被遮挡的一部分。
- 帧布局通常需要结合程序代码运行,布局文件本身基本上无法体现实质意义。
网格布局(GridLayout)
(1)网格布局的节点名称为 GridLayout。
(2)网格布局是 Android 4.0 新提供的网格形式的布局控件,如果项目版本偏低,则需要导入V7包才可以使用。
(3)网格布局的原则是将各控件按照水平/垂直方向依次排列,当达到最大的行数/列数时,换到下一行/列继续显示。
(4)GridLayout 的核心属性:
<1>orientation:必要属性,表示控件的布局方向,取值为 horizontal 或 vertical;
<2>columnCount:最大列数,取值为数值;
<3>rowCount:最大行数,取值为数值。
(5)在网格布局中,子控件可设置的属性有:
<1>layout_column:控件位于第几列,取值为列的序号;
<2>layout_row:控件位于第几行,取值为行的序号;
<3>layout_columnSpan:合并几列,取值为需要合并的列的数量;
<4>layout_rowSpan:合并几行,取值为需要合并的行的数量;
<5>layout_gravity:控件的对齐方式,其中,较有特殊的取值有 fill_vertical 和 fill_horizontal,表示在可行的情况下在垂直/水平方向扩大该控件。