android:TableLayout表格布局詳解

這篇博文包括的內(nèi)容:
1袍辞、TableLayout簡介
2毅贮、****TableLayout行列數(shù)的確定

3、****TableLayout可設(shè)置的屬性詳解

4不从、一個包含4個TableLayout布局的實例及效果圖

一、Tablelayout簡介
Tablelayout類以行和列的形式對控件進(jìn)行管理牵敷,每一行為一個TableRow對象胡岔,或一個View控件。
當(dāng)為TableRow對象時枷餐,可在TableRow下添加子控件靶瘸,默認(rèn)情況下,每個子控件占據(jù)一列毛肋。
當(dāng)為View時怨咪,該View將獨占一行。
二润匙、TableLayout行列數(shù)的確定
TableLayout的行數(shù)由開發(fā)人員直接指定诗眨,即有多少個TableRow對象(或View控件),就有多少行孕讳。
TableLayout的列數(shù)等于含有最多子控件的TableRow的列數(shù)匠楚。如第一TableRow含2個子控件,第二個TableRow含3個厂财,第三個TableRow含4個芋簿,那么該TableLayout的列數(shù)為4.
三、TableLayout可設(shè)置的屬性詳解
TableLayout可設(shè)置的屬性包括全局屬性及單元格屬性璃饱。
1与斤、全局屬性也即列屬性,有以下3個參數(shù):

Android:stretchColumns 設(shè)置可伸展的列荚恶。該列可以向行方向伸展撩穿,最多可占據(jù)一整行。

android:shrinkColumns 設(shè)置可收縮的列裆甩。當(dāng)該列子控件的內(nèi)容太多冗锁,已經(jīng)擠滿所在行齐唆,那么該子控件的內(nèi)容將往列方向顯示嗤栓。

android:collapseColumns 設(shè)置要隱藏的列。

示例:

android:stretchColumns="0" 第0列可伸展

android:shrinkColumns="1,2" 第1,2列皆可收縮

android:collapseColumns="*" 隱藏所有行
說明:列可以同時具備stretchColumns及shrinkColumns屬性箍邮,若此茉帅,那么當(dāng)該列的內(nèi)容N多時,將“多行”顯示其內(nèi)容锭弊。(這里不是真正的多行堪澎,而是系統(tǒng)根據(jù)需要自動調(diào)節(jié)該行的layout_height)

2、單元格屬性味滞,有以下2個參數(shù):

android:layout_column 指定該單元格在第幾列顯示
android:layout_span 指定該單元格占據(jù)的列數(shù)(未指定時樱蛤,為1)

示例:
android:layout_column="1" 該控件顯示在第1列
android:layout_span="2" 該控件占據(jù)2列
說明:一個控件也可以同時具備這兩個特性钮呀。

四、一個包含4個TableLayout布局的實例及效果圖

<?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="表1:全局設(shè)置:列屬性設(shè)置"  
        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="表2:單元格設(shè)置:指定單元格屬性設(shè)置"  
        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="第0列"/>  
            <Button android:text="第1列"/>  
            <Button android:text="第2列"/>  
        </TableRow>  
          
        <TableRow>  
            <TextView android:text="我被指定在第1列" android:layout_column="1"/>  
        </TableRow>  
              
        <TableRow>  
            <TextView  
                android:text="我跨1到2列,不信你看晌杰!"  
                android:layout_column="1"  
                android:layout_span="2"  
                />  
        </TableRow>  
          
    </TableLayout>      
      
    <!-- 第3個TableLayout跷睦,使用可伸展特性布局-->  
    <TextView   
        android:text="表3:應(yīng)用一,非均勻布局"  
        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:應(yīng)用二惋啃,均勻布局"  
        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>  

說明:第4個TableLayout里的均勻布局的均勻效果是有限的哼鬓。其有限性體現(xiàn)在,當(dāng)該行有N列边灭,則每列的控件內(nèi)容不能多于1/N异希。
運行效果圖:(如圖1)


圖1 TableLayout運行結(jié)果圖

參考書目:
[1] 《android基礎(chǔ)教程》,[美]Ed Burnette 著绒瘦,張波称簿,高朝勤,楊月等譯惰帽,北京:人民郵電出版社憨降,2009.11
[2] 《android開發(fā)入門教程》,[美]Mark L. Murphy著该酗,李雪飛授药,吳明暉譯,北京:人民郵電出版社呜魄,2010.12
[3] 《android核心技術(shù)與實例詳解》悔叽,吳亞峰,索依娜爵嗅,北京:電子工業(yè)出版社娇澎,2010.10

參考文章:

Android 使用 TableLayout 布局拉伸寬度

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市睹晒,隨后出現(xiàn)的幾起案子趟庄,更是在濱河造成了極大的恐慌括细,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戚啥,死亡現(xiàn)場離奇詭異勒极,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)虑鼎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門辱匿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炫彩,你說我怎么就攤上這事匾七。” “怎么了江兢?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵昨忆,是天一觀的道長。 經(jīng)常有香客問我杉允,道長邑贴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任叔磷,我火速辦了婚禮拢驾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘改基。我一直安慰自己繁疤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布秕狰。 她就那樣靜靜地躺著稠腊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸣哀。 梳的紋絲不亂的頭發(fā)上架忌,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機(jī)與錄音我衬,去河邊找鬼叹放。 笑死,一個胖子當(dāng)著我的面吹牛低飒,可吹牛的內(nèi)容都是我干的许昨。 我是一名探鬼主播懂盐,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼褥赊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了莉恼?” 一聲冷哼從身側(cè)響起拌喉,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤速那,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尿背,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體端仰,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年田藐,在試婚紗的時候發(fā)現(xiàn)自己被綠了荔烧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡汽久,死狀恐怖鹤竭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情景醇,我是刑警寧澤臀稚,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站三痰,受9級特大地震影響吧寺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜散劫,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一稚机、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧获搏,春花似錦抒钱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至症概,卻和暖如春蕾额,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背彼城。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工诅蝶, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人募壕。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓调炬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舱馅。 傳聞我的和親對象是個殘疾皇子缰泡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,133評論 25 707
  • Android布局是應(yīng)用界面開發(fā)的重要一環(huán),在Android中代嗤,共有五種布局方式,分別是: LinearLayou...
    楓羽望空閱讀 9,750評論 1 9
  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,419評論 0 17
  • 其實漁夫和富翁的故事很早之前也看過歧譬,富翁想要的生活是每天在沙灘上曬太陽,漁夫說我現(xiàn)在每天過得就是這樣的生活啊泼返,照你...
    fineyy閱讀 540評論 0 0
  • 布局基本布局 FrameLayout線性布局 LinearLayout相對布局 RelativeLayout絕對布...
    tea9閱讀 316評論 0 0