<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".AndroidTableLayoutActivity" > <!-- 定义第一个表格,指定第2列允许收缩,第3列允许拉伸 --> <TableLayout android:id="@+id/tablelayout01" android:layout_width="match_parent" android:layout_height="wrap_content" android:shrinkColumns="1" android:stretchColumns="2" > <!-- 直接添加按钮,自己占用一行 --> <Button android:id="@+id/btn01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="独自一行" > </Button> <TableRow> <Button android:id="@+id/btn02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="普通" > </Button> <Button android:id="@+id/btn03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="允许被收缩允许被收缩允许被收缩允许被收缩" > </Button> <Button android:id="@+id/btn04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="允许被拉伸" > </Button> </TableRow> </TableLayout> <!-- 定义第2个表格,指定第2列隐藏 --> <TableLayout android:id="@+id/tablelayout02" android:layout_width="match_parent" android:layout_height="wrap_content" android:collapseColumns="1" > <TableRow> <Button android:id="@+id/btn05" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="普通" > </Button> <Button android:id="@+id/btn06" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="被隐藏列" > </Button> <Button android:id="@+id/btn07" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="允许被拉伸" > </Button> </TableRow> </TableLayout> <!-- 定义第3个表格,指定第2列填满空白--> <TableLayout android:id="@+id/tablelayout03" android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="1" > <TableRow> <Button android:id="@+id/btn08" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="普通" > </Button> <Button android:id="@+id/btn09" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="填满剩余空白" > </Button> </TableRow> </TableLayout> <!-- 定义第3个表格,指定第2列横跨2列--> <TableLayout android:id="@+id/tablelayout04" android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow> <Button android:id="@+id/btn10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="普通" > </Button> <Button android:id="@+id/btn11" android:layout_column="2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="填满剩余空白" > </Button> </TableRow> </TableLayout> </LinearLayout>
1、登录
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical" android:stretchColumns="0,3"> <TableRow> <TextView /> <TextView android:text="账 号:" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24px" /> <EditText android:id="@+id/account" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24px" android:minWidth="220px"/> <TextView /> </TableRow> <TableRow android:layout_marginTop="20px"> <TextView /> <TextView android:text="密 码:" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:id="@+id/pwd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="220px" android:textSize="24px" android:inputType="textPassword"/> <TextView /> </TableRow> <TableRow android:layout_marginTop="20px"> <TextView /> <Button android:id="@+id/login" android:text="登录" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/quit" android:text="退出" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView /> </TableRow> </TableLayout>
要点:
android:orientation="vertical"垂直线性布局,"horizontal"水平线性布局
android:gravity="top"(buttom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal)控制布局中控件的对齐方式。如果是没有子控件的控件设置此属性,表示其内容的对齐方式,比如说TextView里面文字的对齐方式;若是有子控件的控件设置此属性,则表示其子控件的对齐方式,gravity如果需要设置多个属性值,需要使用“|”进行组合
android:gravity 与 android:layout_gravity的区别 android:gravity是指定本元素的子元素相对它的对齐方式。 android:layout_gravity是指定本元素相对它的父元素的对齐方式。
android:layout_weight="1"通过设置控件的layout_weight属性以控制各个控件在布局中的相对大小,线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。在水平布局的LinearLayout中有两个Button,这两个Button的layout_weight属性值都为1,那么这两个按钮都会被拉伸到整个屏幕宽度的一半。如果layout_weight指为0,控件会按原大小显示,不会被拉伸;对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度。
例:
布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".LinearLayoutActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal" > <Button android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:background="#aa0000" android:gravity="center_horizontal|center_vertical" android:text="第一列" android:textSize="15sp" > </Button> <Button android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:background="#00aa00" android:gravity="center_horizontal" android:text="第二列" android:textSize="15sp" > </Button> <Button android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:background="#0000aa" android:gravity="center|bottom" android:text="第三列" android:textSize="15sp" > </Button> <Button android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:background="#aaaa00" android:gravity="bottom" android:text="第四列" android:textSize="15sp" > </Button> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" > <Button android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="bottom" android:text="第1行" android:textSize="15sp" > </Button> <Button android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="bottom" android:text="第2行" android:textSize="15sp" > </Button> <Button android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="bottom" android:text="第3行" android:textSize="15sp" > </Button> <Button android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="bottom" android:text="第4行" android:textSize="15sp" > </Button> </LinearLayout> </LinearLayout>