1.Anroid RelativeLayout 属性
- 相对于给定ID 控件
android:layout_above 将该控件的底部置于给定ID的控件之上
android:layout_below 将该控件的顶部置于给定ID的控件之下
android:layout_toLeftOf 将该控件的右边缘与给定ID的控件的左边缘对齐
android:layout_toRightOf 和上面相反
android:layout_alignBaseline 将该控件的baseline 与给定ID的baseline对齐
android:layout_alignTop 将该控件的顶部与给定ID的顶部边缘对齐
android:layout_alignButtom 将该控件的底部边缘与给定ID 的底部边缘对齐
android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐
android:layout_alignRight 将该控件的左边缘与给定ID的右边缘对齐
- 相对于父组件
android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐
android:layout_alignParentBottom 为ture, 将该控件的底部与其父控件的底部对齐
android:layout_alignParentLeft 为true, 将该控件的左边与其父控件的左边对齐
android:layout_alignParentRight 为true, 将该控件的右边与其父控件的右边对齐
- 居中
android:layout_centerHorizontal 如果为true, 将该控件置于水平居中
android:layout_centerVertical 如果为true, 将该控件置于垂直居中
android:layout_centerInParent 如果为true, 将该控件置于父控件的中央
- 指定移动像素
android:layout_marginTop 上偏移的值(该控件的顶部与其上面控件的距离,列:若button1在button2的上面,则为 button1底部和button2顶部的距离,以下类推)
android:layout_marginBottom 下偏移的值
android:layout_marginLeft 左偏移的值
android:layout_marginRight 右偏移的值
2.Linear Layout 线性布局
- orientation :
容器内元素的排列方式。 vertical: 垂直排列, horizontal:水平排列;
在代码中可以通过setOrientation() 进行动态改变
- baselineAligned:
一般情况下默认为true ,代表在同一方向的组件都基于第一个组件对齐。
3.TableLayout 表格布局
- 表格布局中
每一行用《TabRow》括起来,在<TableLayout> 中可以定义如下属性
android:shrinkColumns="1" 表明第2个控件如果里面的内容过多,会收缩,扩展到第二行,而不是延伸
android:stretchColumns="2" 如果有空白,第3个控件填充(从0开始)
- 控件设置
android:layout_column="2"将此控件放在第3个位置
android:layout_span="2" 此控件占据第2个单元位置
4.GridLayout 网格布局
- 布局方式:
共分为水平和垂直两种方式,默认是水平布局
android:columnCount="4" 设置列数为4
android:rowCount="4"设置行数为4
- 在控件中:
android:layout_row="0" 表示从第一行开始
android:layout_column="0"表示从第一列开始
android:layout_rowSpan 横跨多行
android:layout_columnSpan 横跨多列
5.一些常用的公共属性 介绍
- layout_width :宽
fill_parent: 宽度和父元素相同, wrap_content:宽度随本身的内容所调整,或指定px值
- layout_height :高
fill_parent: 高度和父元素相同, wrap_content: 高度随本身的内容所调整,或指定px值
- background :背景
- padding :设置边距
该控件中的内容与该控件自身边框的距离
可以具体设置paddingBottom, paddingLeft, paddingRight, paddingTop来设置不同的px值
- id ——object的 id 号
- layout_weight :权重
将剩余的空间按权重分配
所有的view的layout_weight缺省值都是为0,意味着他们只在屏幕上占据它们需要显示的空间大小。activity根据这个View的比0大的layout_weight值来划分剩余的空间和其它Views定义的layout_weight也按比例进行空间的划分。
给个例子:假设我们在水平行上有一个文本标签和两个文本编辑框view. 文本标签没有定义layout_weight 值,所以它将占据最小的需要提供的空间. 如果每个文本框view的layout_weight 都被设置为1, 在父布局中的剩余的宽度将被它们平分.如果一个文本view的layout_weight值为2,另外一个是1, 那么剩余空间的三分之一将给第一个文本框,三分之二将给第二个文本框
- layout_gravity ——该组件相对于父窗口的对于方式
- gravity ——该组件中的内容相对于该组件的对齐方式