表格布局是按照行列來(lái)組織子視圖的布局。表格布局包含一系列的Tabrow對(duì)象,用于定義行(也可以使用其它子對(duì)象)。表格布局不為它的行、列和單元格顯示表格線。每個(gè)行可以包含一個(gè)以上(包括)的單元格;每個(gè)單元格可以設(shè)置一個(gè)View對(duì)象.與行包含很多單元格一樣,表格包含很多列。表格的單元格可以為空。
android:stretchColumns是TableLayout布局標(biāo)簽的一個(gè)特有屬性,用來(lái)設(shè)置TableLayout的子標(biāo)簽TableRow的某列是否拉伸占滿剩余的空間。列的寬度由該列所有行中最寬的一個(gè)單元格決定.不過(guò)表格布局可以通過(guò)shrinkColumns和 stretchColumns兩個(gè)屬性來(lái)標(biāo)記某些列可以收縮或可以拉伸. 如果標(biāo)記為可以收縮,列寬可以收縮以使表格適合容器的大小。如果標(biāo)記為可以拉伸, 列寬可以拉伸以占用多余的空間。表格的總寬度由其父容器決定. 記住列可以同時(shí)具有可拉伸和可收縮屬性。最后,你還可以通過(guò)設(shè)置collapseColumns屬性來(lái)隱藏列。
表格布局的子對(duì)象不能指定android:layout_width屬性.寬度永遠(yuǎn)是"match_parent"。不過(guò)子對(duì)象可以定義 android:layout_height屬性;其默認(rèn)值是wrap_content. 如果子對(duì)象是TableRow,其高度永遠(yuǎn)是wrap_content。
雖然表格布局典型的子對(duì)象是表格行,實(shí)際上你可以使用任何視圖類(lèi)的子類(lèi), 作為表格視圖的直接子對(duì)象.視圖會(huì)作為只有一行并結(jié)合了所有列的單元格顯示。android:stretchColumns="1"設(shè)置所用行的第二列為擴(kuò)展列,如果有三列的話,剩余空間由第二列補(bǔ)齊。