一、LinerLayout布局:线性布局
是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。
属性如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 线性布局的方向:vertical(垂直方向)
horizontal(水平方向)
android:layout_width="fill_parent"
填充方式:fill_parent:设置一个顶部布局或控件为fill_parent将强制性让它填充父控件
match_parent:设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小
wrap_content:Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,那么如果考虑低版本的使用情况你就需要用fill_parent了
android:layout_height="fill_parent">
<!--
android:id —— 为控件指定相应的ID
android:text—— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串
android:grivity—— 指定控件的内容的基本位置,比如说居中,居右等位置
android:textSize—— 指定控件当中字体的大小(pt是镑的意思)
android:background—— 指定该控件所使用的背景色,RGB命名法:#aa0000
android:width—— 指定控件的宽度
android:height—— 指定控件的高度
android:padding*—— 指定控件的内边距,也就是说控件当中的内容paddingLeft、paddingTop、paddingRight、paddingBottom,如果只有padding,则说明四个内边框值均为该值
android:sigleLine ——如果设置为真的话,则将控件的内容在同一行当中进行显示,如果字数太多无法完全显示,将会以省略号的形式显示
android:layout_weight——如果有两个控件,第一个控件的weight为1,第二个控件的weight为2,那么控件一的高度为linerlayout高度的三分之一,控件二位三分之二
-->
<TextView
android:id="@+id/firstText"
android:text="第一行"
android:gravity="center_vertical"
android:textSize="35pt"
android:background="#aa0000"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:paddingTop="20dip"
android:paddingRight="30dip"
android:paddingBottom="40dip"
android:layout_weight="1"
android:singleLine="true"/>
</LinearLayout>
二、TableLayout布局:表格布局
<?xml version="1.0"encoding="utf-8"?>
<TableLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="2">使用第三列作为拉伸列,如果该行未填充满,则拉伸第三列使整行填充整个屏幕(序号从0开始)
![](https://img-my.csdn.net/uploads/201303/07/1362661492_7709.png)
<TableRow>一个TableRow占一行,该行有三个TextView,即为三列
<TextView
android:text="@string/row1_column1"
android:background="#aa0000"
android:padding="3dip" />上下左右内边距都为3dip
<TextView
android:text="@string/row1_column1"
android:padding="3dip"
android:gravity="center_horizontal"
android:background="#00aa00"
></TextView>
<TextView
android:text="@string/row1_column2"
android:gravity="right"
android:background="#0000aa"
android:padding="3dip" />
</TableRow>
<TableRow>
<TextView
android:text="@string/row2_column1"
android:padding="3dip" />
<TextView
android:text="@string/row2_column2"
android:gravity="right"
android:padding="3dip" />
</TableRow>
</TableLayout>
三、TableLayout和LinearLayout是可以嵌套的
<?xml version="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView />
<TextView />
<TextView />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="0">
<TableRow>
<TextView/>
<TextView/>
</TableRow>
<TableRow>
<TextView />
<TextView />
</TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>
android:layout_above 将该控件的底部至于给定ID的控件之上
android:layout_below将该控件的顶部至于给定ID的控件之下
android:layout_toLeftOf将该控件的右边缘和给定ID的控件的左边缘对齐
android:layout_toRightOf将该控件的左边缘和给定ID的控件的右边缘对齐
android:layout_alignBaseline该控件的baseline和给定ID的控件的baseline对齐
android:layout_alignBottom将该控件的底部边缘与给定ID控件的底部边缘
android:layout_alignLeft将该控件的左边缘与给定ID控件的左边缘对齐
android:layout_alignRight将该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop将给定控件的顶部边缘与给定ID控件的顶部对齐
android:alignParentBottom如果该值为true,则将该控件的底部和父控件的底部对齐
android:layout_alignParentLeft如果该值为true,则将该控件的左边与父控件的左边对齐
android:layout_alignParentRight如果该值为true,则将该控件的右边与父控件的右边对齐
android:layout_alignParentTop如果该值为true,则将空间的顶部与父控件的顶部对齐
android:layout_centerHorizontal如果值为真,该控件将被至于水平方向的中央
android:layout_centerInParent如果值为真,该控件将被至于父控件水平方向和垂直方向的中央
android:layout_centerVertical如果值为真,该控件将被至于垂直方向的中央
<EditTextandroid:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>将控件entry至于控件label之下
<Button android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"将该控件的右边与父控件的右边对齐
android:layout_marginLeft="10px" 控件与左边界距离10px
android:text="OK" />