標籤:
TableLayout表格版面配置
TableLayout是指將子項目的位置分配到行或列中。Android的一個TableLayout有許多TableRow組成,每一個TableRow都會定義一個Row。TableLayout容器不會顯示Row,Column,及Cell的邊框線,每個Row擁有0個或多個Cell,每個Cell擁有一個View對象。
在使用tablelayout時,應注意每一個cell的寬度。
我們下面通過XML布局和Java代碼布局兩種方式分別舉例:
一、XML方式布局
1、建立一個空白Activity
2、開啟“res/layout/activity_main.xml”檔案,修改成以下代碼。
(1)第①部分
<?xml version="1.0" encoding="utf-8" ?>,每個XML文檔都由XML序言開始,在前面的代碼中的第一行便是XML序言,<?xml version="1.0">。這行代碼錶示按照1.0版本的XML規則進行解析。encoding = "utf-8"表示此xml檔案採用utf-8的編碼格式。編碼格式也可以是GB2312。
(2)第②部分
<LinearLayout …… 表示採用表格版面配置管理器。
(3)第③部分
android:layout_width="match_parent" android:layout_height="match_parent"表示布局管理器寬度和高充將填充整個螢幕寬度和高度。
(4)第④部分
android:stretchColumns="1"表示表格版面配置管理器中第2列內組件可以擴充到的有可用空間。
3、插入1行TableRow、1個文本TextView、1個TextEdit。
4、開啟“res/layout/activity_main.xml”檔案,修改成以下代碼。
(1)第①部分
<TableRow></TableRow>代表一行,可以在其中填充控制項。
(2)第②部分
添加一個標籤<TextView>。
(3)第③部分
添加一個編輯框<EditText>。
5、依次再插入2行<TableRow>、密碼標籤<TextView>、密碼編輯框<EditText>、2個按鈕Button:註冊、登入。
代碼如下:
<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:stretchColumns="1"> //第一行 <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tvUserName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="使用者名稱:" /> <EditText android:id="@+id/etUserName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> </TableRow> //第二行 <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:text="登入密碼:" android:textStyle="bold" android:gravity="right" android:padding="3dp" /> <EditText android:id="@+id/password" android:password="true" android:padding="3dp" android:scrollHorizontally="true" /> </TableRow> //第三行 <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/cancel" android:text="註冊" /> <Button android:id="@+id/login" android:text="登入" /> </TableRow></TableLayout>
6、最終顯示效果如下:
附:表格版面配置常見屬性介紹
(1)TableLayout行列數的確定
TableLayout的行數由開發人員直接指定,即有多少個TableRow對象(或View控制項),就有多少行。
TableLayout的列數等於含有最多子控制項的TableRow的列數。如第一TableRow含2個子控制項,第二個TableRow含3個,第三個TableRow含4個,那麼該TableLayout的列數為4.
(2)TableLayout可設定的屬性詳解
TableLayout可設定的屬性包括全域屬性及儲存格屬性。
a)全域屬性也即列屬性,有以下3個參數:
android:stretchColumns 設定可伸展的列。該列可以向行方向伸展,最多可佔據一整行。
android:shrinkColumns 設定可收縮的列。當該列子控制項的內容太多,已經擠滿所在行,那麼該子控制項的內容將往列方向顯示。
android:collapseColumns 設定要隱藏的列。
樣本:
android:stretchColumns="0" 第0列可伸展
android:shrinkColumns="1,2" 第1,2列皆可收縮
android:collapseColumns="*" 隱藏所有行
說明:列可以同時具備stretchColumns及shrinkColumns屬性,若此,那麼當該列的內容N多時,將“多行”顯示其內容。(這裡不是真正的多行,而是系統根據需要自動調節該行的layout_height)
b)儲存格屬性,有以下2個參數:
android:layout_column 指定該儲存格在第幾列顯示
android:layout_span 指定該儲存格佔據的列數(未指定時,為1)
樣本:
android:layout_column="1" 該控制項顯示在第1列
android:layout_span="2" 該控制項佔據2列
說明:一個控制項也可以同時具備這兩個特性。
二、Java代碼方式布局
上面我們已經瞭解採用XML進行LinearLayout布局,我們現在再來學習一下如何使用Java程式碼完成與之同樣功能。
Java代碼方式暫略。
android學習——TableLayout表格版面配置