Android的布局管理:表格布局

比如要实现如下的界面:

可以联合使用TableLayout和LinearLayout达到上面的效果:

 
 
<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="match_parent"    android:stretchColumns="*" >     <TableRow        android:id="@+id/tableRow1"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >         <TextView            android:id="@+id/username_label"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="right|center_vertical"            android:text="用户名:" />         <EditText            android:id="@+id/editText1"            android:layout_height="wrap_content"            android:ems="10"            android:hint="请输入用户名" />     </TableRow>     <TableRow        android:id="@+id/tableRow2"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >         <TextView            android:id="@+id/textView1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="right|center_vertical"            android:text="密码:" />         <EditText            android:id="@+id/editText2"            android:layout_height="wrap_content"            android:ems="10"            android:hint="请设定密码"            android:inputType="textPassword" >             <requestFocus />
        </EditText>     </TableRow>     <TableRow        android:id="@+id/tableRow3"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >         <Space            android:layout_width="wrap_content"            android:layout_height="wrap_content" />         <LinearLayout            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="right" >             <Button                android:id="@+id/button1"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="登录" />             <Button                android:id="@+id/button2"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="注册" />         </LinearLayout>     </TableRow> </TableLayout>

这里的几个要点是:

  • 在TableLayout中使用stretchColumns=”*”伸展所有界面组件,以使得屏幕得到充分利用。

  • 用户名和密码的Lable的宽度通常只需要wrap_content即可,gravity设置为right|center_vertical居右显示。

  • 文本输入框(EditText域)的宽度在stretchColumns=”*”的情况下可以不设置,由系统自动确定宽度。

  • 使用嵌套的LinearLayout进行两个按钮的布局,并且LinearLayout的gravity设置为right,使得两个按钮居右显示。注意,需要一个space(空的界面组件)来占据表格的第一列。  



你可能感兴趣的:(Android的布局管理:表格布局)