android佈局管理器之TableLayout

android佈局管理器之TableLayout

android TableLayout佈局聚承LinearLayout,所以LinearLayout的所有屬性,TableLayout也適用。

TableLayout通過指定TableRow來確定表格有多少行,列數由最多列的一行決定

TableLayout比LinearLayout多了一些有用的屬性:

屬性名稱 相關方法 說明
android:collapseColumns setColumnCollapsed(int,boolean) 設置允許被隱藏的列的序號,多列使用逗號分隔
android:shrinkColumns setShrinkAllColumns(boolean) 設置允許被收縮的列的序號,多列使用逗號分隔
android:stretchColumns setStretchAllColumns(boolean) 設置允許被拉伸的列的序號,多列使用逗號分隔

下面看看相關例子,以下文章內容轉載:

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列去掉,如下圖:

\








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章