Android中的线性布局详解
1.线性布局
LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列。
2.线性布局常用基本属性:
- android:id
- android:orientation
- android:layout_height
- android:layout_width
- android:gravity
- android:layout_gravity
- android:background
- android:layout_margin
- android:padding
- android:weightSum
- android:layout_weight
- android:baselineAligned
3.常用属性值介绍:
android:id ——— 布局的唯一标识ID
android:orientation ——— 表示线性布局的方向(垂直或者水平)
1.android:orientation=”vertical”表示采用纵向的布局方式,所有在当前布局中添加的 所有控件都依次按竖向排列
2.android:orientation=”horizontal”表示采用横向的布局方式,所有在当前布局中添加的所有控件都依次按横向排列(默认水平)
android:layout_height —— 表示当前线性布局的高度
1.android:layout_height=”match_parent” (表示高度占满整个屏幕)
2.android:layout_height=”wrap_content” (表示高度根据其包含的控件自适应调整)
3.android:layout_height=”30dp”(自定义设置高度,通常单位为dp)
android:layout_width —— 表示当前线性布局的宽度
1.android:layout_width=”match_parent” (表示宽度占满整个屏幕)
2.android:layout_width=”wrap_content” (表示宽度根据其包含的控件自适应调整)
3.android:layout_width=”30dp”(自定义设置宽度,通常单位为dp)
android:gravity ——— 表示所有包含在当前布局中的所有控件采用某种方式对齐(默认左对齐)
center (垂直且水平居中)
center_horizontal (水平居中)
bottom (底部对齐)
center_vertical (垂直居中)
clip_horizontal (水平方向裁剪,当对象边缘超出容器的时候,将上下边缘超出的部分剪切掉,剪切基于纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部.)
clip_vertical (垂直方向裁剪,当对象边缘超出容器的时候,将左右边缘超出的部分剪切掉,剪切基于横向对齐设置:左对齐时,剪切右边部分;右对齐时剪切左边部分;除此之外剪切左边和右边部分.)
end (放在容器的结束位置,不改变其大小)
fill (必要的时候增加对象的横纵向大小,以完全充满其容器)
fill_horizontal (必要的时候增加对象的横向大小,以完全充满其容器. 水平方向充)
fill_vertical (必要的时候增加对象的纵向大小,以完全充满其容器. 垂直方向填充)
left (将对象放在其容器的左部,不改变其大小)
right (将对象放在其容器的右部,不改变其大小)
start (将对象放在其容器的开始位置,不改变其大小)
top (将对象放在其容器的顶部,不改变其大小)
android:layout_gravity —— 表示当前线性布局相对于父元素的对齐方式
android:background —— 表示当前线性布局的背景颜色或图片
android:layout_margin —— 表示当前线性布局的外边距
android:padding —— 表示当前线性布局的内边距
android:weightSum —— 表示权重的总比例
android:layout_weight —— 表示子元素对未占用空间水平或垂直分布的权重
android:baselineAligned —— 该控件只对能显示text的子控件有效。其值为布尔值,默认为true。当值为true时,子控件内的文本的第一行水平对齐。
关于权重的详解:http://blog.csdn.net/zhoujn90/article/details/45055863
关于android:baselineAligned的详解:http://blog.csdn.net/kayan19901/article/details/46332669