表格布局,適用于多行多列的布局格式,每個(gè)TableLayout是由多個(gè) TableRow 組成,一個(gè) TableRow 就表示 TableLayout 中的每一行,這一行可以由多個(gè)子元素組成。實(shí)際上 TableLayout 和 TableRow 都是 LineLayout 線性布局的子類。但是 TableRow 的參數(shù) android?rientation 屬性值固定為 horizontal ,且 android:layout_width=MATCH_PARENT , android:layout_height=WRAP_CONTENT 。所以 TableRow 實(shí)際是一個(gè)橫向的線性布局,且所以子元素寬度和高度一致。
合水網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
注意: 在 TableLayout 中,單元格可以為空,但是不能跨列,意思是只能不能有相鄰的單元格為空.
在 TableLayout 布局中,一列的寬度由該列中最寬的那個(gè)單元格指定,而該表格的寬度由父容器指定??梢詾槊恳涣性O(shè)置以下屬性:
RelativeLayout 繼承于 android.widget.ViewGroup ,其按照子元素之間的位置關(guān)系完成布局的,作為 Android 系統(tǒng)五大布局中最靈活也是最常用的一種布局方式,非常適合于一些比較復(fù)雜的界面設(shè)計(jì)。
注意:在引用其他子元素之前,引用的 ID 必須已經(jīng)存在,否則將出現(xiàn)異常。
將所有的子元素放在整個(gè)界面的左上角,后面的子元素直接覆蓋前面的子元素,所以用的比較少。
絕對(duì)布局中將所有的子元素通過設(shè)置 android:layout_x 和 android:layout_y 屬性,將子元素的坐標(biāo)位置固定下來,即坐標(biāo)( android:layout_x , android:layout_y ) , layout_x 用來表示橫坐標(biāo), layout_y 用來表示縱坐標(biāo)。 屏幕左上角為坐標(biāo)(0,0),橫向往右為正方,縱向往下為正方。實(shí)際應(yīng)用中,這種布局用的比較少,因?yàn)?Android 終端一般機(jī)型比較多,各自的屏幕大小。分辨率等可能都不一樣,如果用絕對(duì)布局,可能導(dǎo)致在有的終端上顯示不全等。
Android六大基本布局分別是:線性布局LinearLayout、表格布局TableLayout、相對(duì)布局RelativeLayout、層布局FrameLayout、絕對(duì)布局AbsoluteLayout、網(wǎng)格布局GridLayout。其中,表格布局是線性布局的子類。網(wǎng)格布局是android 4.0后新增的布局。
在手機(jī)程序設(shè)計(jì)中,絕對(duì)布局基本上不用,用得相對(duì)較多的是線性布局和相對(duì)布局。
padding是站在父view的角度描述問題,它規(guī)定它里面的內(nèi)容必須與這個(gè)父view邊界的距離。margin則是站在自己的角度描述問題,規(guī)定自己和其他(上下左右)的view之間的距離,如果同一級(jí)只有一個(gè)view,那么它的效果基本上就和padding一樣了。
顯示特點(diǎn):所有子控件按照橫向或者豎向依次排列
left(左)、right(右)、top(上)、bottom(下)、center(中心)、
enter_vertical(豎向中心)、center_horizontal(橫向中心)
left(左)、right(右)、top(上)、bottom(下)、center(中心)、
enter_vertical(豎向中心)、center_horizontal(橫向中心)
子控件的用法:android:layout_weight="1" 多個(gè)控件同時(shí)使用,可以實(shí)現(xiàn)平分的效果
顯示特點(diǎn):和LinearLayout布局相似,所有子控件默認(rèn)顯示在RelativeLayout的左上角
layout_toRightOf 在指定控件的右邊
layout_toLeftOf 在指定控件的左邊
layout_above 在指定控件的上邊
layout_below 在指定控件的下邊子控件對(duì)齊關(guān)系
layout_alignRight 與指定控件右對(duì)齊
layout_alignLeft 與指定控件左對(duì)齊
layout_alignTop 與指定控件上對(duì)齊
layout_centerInParent 與父容器中間對(duì)齊 pairunte
layout_centerVertical 與父容器豎向中心對(duì)齊
layout_centerHorizontal 與父容器橫向中心對(duì)齊
layout_alignParentLeft 與父容器左邊對(duì)齊
layout_alignParentTop 與父容器上邊對(duì)齊
layout_alignParentRight 與父容器右邊對(duì)齊
layout_alignParentBottom 與父容器下邊對(duì)齊
顯示特點(diǎn):所有子控件默認(rèn)在GridLayout中橫向依次排列,當(dāng)只等每行的列數(shù)時(shí),到達(dá)指定列數(shù)
會(huì)自動(dòng)換行顯示。
layout_column 在網(wǎng)格的第幾列
layout_row 在網(wǎng)格的第幾行
layout_columnSpan 跨列
layout_rowSpan 跨行
layout_gravity 在一個(gè)網(wǎng)格中的重心位置
columnCount 每行列總數(shù)
顯示特點(diǎn):所有的子控件默認(rèn)顯示在FrameLayout的左上角,會(huì)重疊在一起顯示。
layout_gravity(設(shè)置給子控件,調(diào)整控件在容器內(nèi)的重心)
常用值:
left(左)、 right(右)、
top(上)、 bottom(下)、
center(中心)、 center_vertical(豎向中心)
center_horizontal(橫向中心)
表格布局和網(wǎng)格布局類似,但是需要注意的是,表格布局不能跨行,只能跨列
在Android Studio中的布局共有6種布局(已知):
只能在LinearLayout中實(shí)現(xiàn),
父類添加orientation屬性(horizontal水平排列 | Vertical垂直排序),
在子類中添加權(quán)重layout_weight 數(shù)字越大,占比越大。
相對(duì)于父容器 (居中):水平居中android:layout_centerHorizontal
完全居中android:layout_centerInParent
垂直居中android:layout_centerVertical
對(duì)齊:與父容器左邊界對(duì)齊:android:layout alignParentLeft
? ? 與父容器右邊界對(duì)齊:android:layout alignParentRight
?? ? ? 與父容器的頂部對(duì)齊android:layout_alignParentTop
?? ? ? 與父容器的底部對(duì)齊android:layout_alignParentBottom
相對(duì)于兄弟視圖控件: (位置):? 顯示在ID為but_id的左側(cè)android:layout_toLeftOf
? ? 顯示在ID為but_id的右側(cè)android:layout_toRightOf
?? ? ? 顯示在ID為but_id的上方android:layout_above
? ? 顯示在ID為but_id的下方android:layout_below
? ? ? ? 對(duì)齊:? ? 與ID為but_id的左側(cè)對(duì)齊android:layout_alignLeft
? ? 與ID為but_id的右側(cè)對(duì)齊android:layout_alignRight
? ? ? ? ? ? ? ? ? ? 與ID為but_id的頂部對(duì)齊android:layout_alignTop
? ? ? ? ? ? ? ? ? ? 與ID為but_id的底部對(duì)齊android:layout_alignBottom
3、絕對(duì)布局
只能在AbsoluteLayout中使用,再要操作的類中使用android:layout_y,android:layout_x
4、幀布局
只能在FrameLayout中使用,使用?View(并列),可以大套小
5、表格布局
在TableLayout類中使用TableRow(行),Button(格)在其TableRow(行)中。
6、網(wǎng)格布局
在GridLayout類中使用Button直接寫入,
在類屬性中添加android:rowCount="5"(5行),或android:columnCount="4"(4列)
在常見的網(wǎng)頁中大部分為線性布局