Android佈局之表格佈局
表格佈局(Tablelayout)
簡介:
Tablelayout類以行和列的形式對控制元件進行管理,每一行為一個TableRow物件,或一個View控制元件。
當為TableRow物件時,可在TableRow下新增子控制元件,預設情況下,每個子控制元件佔據一列。
表格佈局是以行和列的形式來對控制元件進行管理的,所以我們來說說表格佈局對行和列的確定
TableLayout的行數
在開發中由我們來直接指定,就是說有多少個TableRow物件或view控制元件就會有多少行。
TableLayout的列數
等於含有最多子控制元件的TableRow的列數。如第一(行)TableRow含2個子控制元件,第二(行)TableRow含3個,第三(行)TableRow含4個,那麼這個表格佈局的列數就是4列。
TableLayout可設定的屬性
表格佈局可以設定的屬性有兩種:全域性屬性、單元格屬性。
全域性屬性(列屬性): 全域性屬性有三個屬性
Android:stretchColumns 設定可伸展的列。該列可以向行方向伸展,最多可佔據一整行。
Android:shrinkColumns 設定可收縮的列。(當該列子控制元件裡的內容太多,行內顯示不完的時候會向列的方向顯示內容)。
Android:collapseColumns 設定要隱藏的列。
下面就來舉例說明一下:
Android:stretchColumns="0" 第0列可伸展
Android:shrinkColumns="1,2" 第1,2列皆可收縮
Android:collapseColumns="1" 隱藏第一行
單元格屬性: 單元格屬性有兩個屬性
Android:layout_column 指定該單元格在第幾列顯示
Android:layout_span 指定該單元格佔據的列數(如果我們在使用中沒有指定,那麼預設值將為1)
下面就來舉例說明一下:
Android:layout_column="1" 該控制元件在第1列
Android:layout_span="2" 該控制元件佔了2列
下面我們來整體運用一下表格佈局裡的屬性(程式碼和效果圖):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dip"
>
<!-- 第1個TableLayout,用於描述表中的列屬性。第0列可伸展,第1列可收縮 ,第2列被隱藏-->
<TextView
android:text="第一個表格:全域性設定:列屬性設定"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="15sp"
android:background="#7f00ffff"/>
<TableLayout
android:id="@+id/table1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0"
android:shrinkColumns="1"
android:collapseColumns="2"
android:padding="3dip">
<TableRow>
<Button android:text="該列可以伸展"/>
<Button android:text="該列可以收縮"/>
<Button android:text="被隱藏了"/>
</TableRow>
<TableRow>
<TextView android:text="向行方向伸展,可以伸展很長 "/>
<TextView android:text="向列方向收縮,*****************************************************************************************可以伸縮很長"/>
</TableRow>
</TableLayout>
<!-- 第2個TableLayout,用於描述表中單元格的屬性,包括:android:layout_column 及android:layout_span-->
<TextView
android:text="第二個:單元格設定:指定單元格屬性設定"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="15sp"
android:background="#7f00ffff"/>
<TableLayout
android:id="@+id/table2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="3dip">
<TableRow>
<Button android:text="第1列"/>
<Button android:text="第2列"/>
<Button android:text="第3列"/>
</TableRow>
<TableRow>
<TextView android:text="指定在第2列" android:layout_column="1"/>
</TableRow>
<TableRow>
<TextView
android:text="第二列和第三列!!!!!!!!!!!!"
android:layout_column="1"
android:layout_span="2"
/>
</TableRow>
</TableLayout>
<!-- 第3個TableLayout,使用可伸展特性佈局-->
<TextView
android:text="第三個表格:非均勻佈局,控制元件長度根據內容伸縮"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="15sp"
android:background="#7f00ffff"/>
<TableLayout
android:id="@+id/table3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:padding="3dip"
>
<TableRow>
<Button android:text="一笑山河紅袖遮" ></Button>
<Button android:text="姜泥"></Button>
<Button android:text="兩劍驚破舊山河" ></Button>
</TableRow>
</TableLayout>
<!-- 第4個TableLayout,使用可伸展特性,並指定每個控制元件寬度一致,如1dip-->
<TextView
android:text="表4:均勻佈局,控制元件寬度一致"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="15sp"
android:background="#7f00ffff"/>
<TableLayout
android:id="@+id/table4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:padding="3dip"
>
<TableRow>
<Button android:text="徐鳳年" android:layout_width="1dip"></Button>
<Button android:text="溫華" android:layout_width="1dip"></Button>
<Button android:text="天不生我李淳罡" android:layout_width="1dip"></Button>
</TableRow>
</TableLayout>
</LinearLayout>
說完了怎麼用,咱們再來說說表格佈局的優點和缺點:
優點:
1、結構位置更簡單
2、容易上手
3、 資料化的存放更合理。
例如,學生資訊這樣的表,相對簡單,如果用別的佈局的話就比較麻煩資訊也比較雜亂。
缺點:
1、 標籤結構多,程式碼複雜
2、 表格佈局,不利於搜尋引擎抓取資訊
這就是Android常用佈局中的表格佈局啦~