TableLayout的行數由開發者直接指定,即有多少個TableRow對象(或View控件),就有多少行。
TableLayout的列數等於含有最多子控件的TableRow的列數。如第一TableRow含2個子控件,第二個TableRow含3個,第三個TableRow含4個,那么該TableLayout的列數為4.
TableLayout可設置的屬性包含全局屬性及單元格屬性。
1、全局屬性也即列屬性。有下面3個參數:
android:stretchColumns 設置可伸展的列。該列能夠向行方向伸展。最多可占領一整行。
android:shrinkColumns 設置可收縮的列。
當該列子控件的內容太多。已經擠滿所在行,那么該子控件的內容將往列方向顯示。
android:collapseColumns 設置要隱藏的列。
演示樣例:
android:stretchColumns="0" 第0列可伸展
android:shrinkColumns="1,2" 第1,2列皆可收縮
android:collapseColumns="*" 隱藏全部行
說明:列能夠同一時候具備stretchColumns及shrinkColumns屬性,若此,那么當該列的內容N多時,將“多行”顯示其內容。
(這里不是真正的多行,而是系統依據須要自己主動調節該行的layout_height)
2、單元格屬性。有下面2個參數:
android:layout_column 指定該單元格在第幾列顯示
android:layout_span 指定該單元格占領的列數(未指定時。為1)
演示樣例:
android:layout_column="1" 該控件顯示在第1列
android:layout_span="2" 該控件占領2列
說明:一個控件也能夠同一時候具備這兩個特性。
TableLayout是一個使用復雜的布局。最簡單的用法就不過拖拉控件做出個界面。但實際上。會常常在代碼里使用TableLayout,比如做出表格的效果。
本文主要介紹TableLayout的基本用法。
<?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="fill_parent"
>
<TableRow>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:layout_column="0"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button2"
android:layout_column="1"/>
</TableRow>
</TableLayout>
-

1 android:stretchColumns = "指定的列" ------->以第0行為序,盡量把指定的列填充空白部分
設置stretchColumns=0,則結果例如以下圖,第0列被盡量填充

設置stretchColumns=1,則結果例如以下圖。第1列被盡量填充

2 android:shrinkColumns = "指定的列":以第0行為序,自己主動延伸指定的列填充可用部分
當LayoutRow里面的控件還沒有布滿布局時。shrinkColumns不起作用,例如以下圖

當LayoutRow里面的控件還沒有布滿布局時(改寫一下第三個Button的內容)

3 android:collapseColumns = “指定的列” 第0行為序。隱藏指定的列>
android:collapseColumns該屬性為空時,例如以下圖:

android:collapseColumns=“0” 意思是把第0列去掉,例如以下圖:

