<?
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
=
"wrap_content"
android:stretchColumns
=
"0,1,2"
android:shrinkColumns
=
"1,2"
>
<TextView
android:text
=
"Table Test"
android:gravity
=
"center"
/>
<TableRow>
<TextView
android:layout_column
=
"1"
android:text
=
"姓名"
android:gravity
=
"center"
/>
<TextView
android:text
=
"基本信息"
android:gravity
=
"center"
/>
</TableRow>
<TableRow>
<TextView
android:text
=
" 1 "
android:gravity
=
"center"
/>
<TextView
android:text
=
"hoyah"
android:gravity
=
"left"
/>
<TextView
android:text
=
"Wuhan University"
android:gravity
=
"right"
/>
</TableRow>
<TableRow>
<TextView
android:text
=
" 2 "
android:gravity
=
"center"
/>
<TextView
android:text
=
"Google"
android:gravity
=
"left"
/>
<TextView
android:text
=
"hello Google"
android:gravity
=
"right"
/>
</TableRow>
<TableRow>
<TextView
android:text
=
"3"
android:gravity
=
"center"
/>
<TextView
android:text
=
"Android"
android:gravity
=
"left"
/>
<TextView
android:text
=
"Android OS"
android:gravity
=
"right"
/>
</TableRow>
</TableLayout>
布局講解:
android:collapse
=
"1
隱藏該TableLayout里的TableRow的列1,即第2列(從0開(kāi)始計(jì)算),若有多列要隱藏,用“,”隔開(kāi)。
android:stretchColumns
=
"0,1,2"
設(shè)置列0、1、2為可伸展列。
android:shrinkColumns
=
"1,2"
設(shè)置列1、2為可收縮列。
android:background
=
"@drawable/picture_name"
本例中沒(méi)有涉及此屬性,它是要設(shè)置當(dāng)前view 的背景圖片,圖片文件應(yīng)該放在res文件夾下。
接著我們?cè)倏纯碼ndroid官方文檔中給出的例子:
<?
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"
android:stretchColumns
=
"1"
>
<TableRow>
<TextView
android:layout_column
=
"1"
android:text
=
"Open..."
android:padding
=
"3dip"
/>
<TextView
android:text
=
"Ctrl-O"
android:gravity
=
"right"
android:padding
=
"3dip"
/>
</TableRow>
<TableRow>
<TextView
android:layout_column
=
"1"
android:text
=
"Save..."
android:padding
=
"3dip"
/>
<TextView
android:text
=
"Ctrl-S"
android:gravity
=
"right"
android:padding
=
"3dip"
/>
</TableRow>
<TableRow>
<TextView
android:layout_column
=
"1"
android:text
=
"Save As..."
android:padding
=
"3dip"
/>
<TextView
android:text
=
"Ctrl-Shift-S"
android:gravity
=
"right"
android:padding
=
"3dip"
/>
</TableRow>
<View
android:layout_height
=
"2dip"
android:background
=
"#FF909090"
/>
<TableRow>
<TextView
android:text
=
"X"
android:padding
=
"3dip"
/>
<TextView
android:text
=
"Import..."
android:padding
=
"3dip"
/>
</TableRow>
<TableRow>
<TextView
android:text
=
"X"
android:padding
=
"3dip"
/>
<TextView
android:text
=
"Export..."
android:padding
=
"3dip"
/>
<TextView
android:text
=
"Ctrl-E"
android:gravity
=
"right"
android:padding
=
"3dip"
/>
</TableRow>
<View
android:layout_height
=
"2dip"
android:background
=
"#FF909090"
/>
<TableRow>
<TextView
android:layout_column
=
"1"
android:text
=
"Quit"
android:padding
=
"3dip"
/>
</TableRow>
</TableLayout>
效果圖如下,大家可以上機(jī)調(diào)試一下:
今天的主要工作是調(diào)節(jié)UI,在設(shè)置TextView的左右間距時(shí),發(fā)現(xiàn)設(shè)置TextView的paddingLeft和paddingRight后毫無(wú)效果,并且設(shè)置TextView的layout_width也沒(méi)有作用。一直糾結(jié)于此,當(dāng)檢查父布局TableLayout的屬性時(shí),發(fā)現(xiàn)其中有這么兩行:
android:stretchColumns="1" android:shrinkColumns="1"這兩個(gè)屬性是TableLayout所特有的,也是這兩個(gè)屬性影響了子對(duì)象的布局。由于表格布局比較特殊,Android IT在此為大家詳細(xì)介紹一下它的布局方式:
表格布局是按照行列來(lái)組織子視圖的布局。表格布局包含一系列的Tabrow對(duì)象,用于定義行(也可以使用其它子對(duì)象)。表格布局不為它的行、列和單元格顯示表格線。每個(gè)行可以包含個(gè)以上(包括)的單元格; 每個(gè)單元格可以設(shè)置一個(gè)View對(duì)象.與行包含很多單元格一樣, 表格包含很多列。表格的單元格可以為空。
列的寬度由該列所有行中最寬的一個(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í)際上你可以使用任何視圖類的子類, 作為表格視圖的直接子對(duì)象.視圖會(huì)作為只有一行并結(jié)合了所有列的單元格顯示。stretchColumns="1"(TextView拉伸):stretchColumns="0"(左邊拉伸):
Android應(yīng)用開(kāi)發(fā)之( TableLayout中stretchColumns、shrinkColumns的用法)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

