前面學習了線性布局和相對布局,線性布局雖然方便,但如果遇到控制項需要排列整齊的情況就很難達到要求,用相對布局又比較麻煩,為此Android系統中提供了表格布局。
一、認識TableLayout
表格布局就是讓控制項以表格的形式來排列控制項,只要將控制項放在單元格中,控制項就可以整齊地排列,使用TableLayout標籤。
TableLayout繼承了 LinearLayout,因此它的本質依然是線性布局管理器。每次向TableLayout中添加一個TableRow,該TableRow就是一個表格行,TableRow也是容器,因此它也可以不斷地添加其他組件,每添加一個子組件該表格就增加一列。如果直接向TableLayout中添加組件,那麼這個組件將直接佔用一行。
在表格布局中,列的寬度由該列中最寬的那個單元格決定,整個表格布局的寬度則取決於父容器的寬度(默認總是佔滿父容器本身)。
在表格布局管理器中,可以為單元格設置如下3種行為方式。
Shrinkable:如果某個列被設為Shrinkable,那麼該列的所有單元格的寬度可以被收縮,以保證該表格能適應父容器的寬度。
Stretchable:如果某個列被設為Stretchable,那麼該列的所有單元格的寬度可以被拉伸,以保證組件能完全填滿表格空餘空間。
Collapsed:如果某個列被設為Collapsed,那麼該列的所有單元格會被隱藏。
TableLayout繼承了 LinearLayout,因此它完全可以支持LinearLayout所支持的全部XML屬性。除此之外,TableLayout還支持如下表所示的XML屬性和相關方法。
二、示例
接下來通過一個簡單的示常式序來學習TableLayout的使用用法。
同樣使用WidgetSample工程,繼續使用app/main/res/layout/目錄下的activity_main.xml文件,在其中填充如下代碼片段:
上面頁面中定義了 3個TableLayout,3個TableLayout中粗體字代碼指定了它們對各列的控制行為。
第1個TableLayout,指定第2列允許收縮,第3列允許拉伸。
第2個TableLayout,指定第2列被隱藏。
第3個TableLayout,指定第2列和第3列允許拉伸。
運行程序,可以看到下圖所示界面效果。
需要注意的是TableRow不需要設置寬度layout_width和高度layoutJieight,其寬度一定是match_parent,即自動填充父容器,高度一定為wrap_content,即根據內容改變高度。但對於TableRow中的其他控制項來說,是可以設置寬度和高度的,但必其須是 wrap_content 或者 fill_parent。
到此,TableLayout的示例結束,關於TableLayout的更多用法可以多動手練習。
今天就先到這裡,如果有問題歡迎留言一起探討,也歡迎加入Android零基礎入門技術討論微信群,共同成長!
此文章版權為微信公眾號分享達人秀(ShareExpert)——鑫鱻所有,若轉載請備註出處,特此聲明!
往期總結分享:
第1節:Android的前世今生
第2節:Android 系統架構和應用組件那些事
第3節:帶你一起來聊一聊Android開發環境
第4節:正確安裝和配置JDK
第5節:善用ADT Bundle
第6節:配置優化SDK Manager
第7節:搞定Android模擬器
第8節:HelloWorld,我的第一趟旅程出發點
第9節:Android實戰,不懂代碼也可以開發
第10節:開發IDE迎來Android Studio
第11節:運行Android Studio工程
第12節:熟悉Android Studio界面
第13節:Android Studio配置優化
第14節:使用高速Genymotion
第15節:掌握Android Studio項目結構
第16節:Android用戶界面開發概述
第17節:TextView屬性和方法大全
第18節:EditText的屬性和使用方法
第19節:Button使用詳解
第20節:CheckBox和RadioButton使用大全
第21節:ToggleButton和Switch使用大全
第22節:ImageView的屬性和方法大全
第23節:ImageButton和ZoomButton使用
第24節:自定義View簡單使用
第25節:簡單且最常用的LinearLayout
第26節:layout_gravity和gravity大不同
第27節:正確使用padding和margin
第28節:輕鬆掌握RelativeLayout相對布局