Android的五大布局

2021-07-03 05:44:26 字數 2754 閱讀 1944

android的五大布局分別是linearlayout(線性布局)、framelayout(單幀布局)、relativelayout(相對布局)、absolutelayout(絕對布局)和tablelayout(**布局)。

linearlayout按照垂直或者水平的順序依次排列子元素,每乙個子元素都位於前乙個元素之後。如果是垂直排列,那麼將是乙個n行單列的結構,每一行只會有乙個元素,而不論這個元素的寬度為多少;如果是水平排列,那麼將是乙個單行n列的結構。如果搭建兩行兩列的結構,通常的方式是先垂直排列兩個元素,每乙個元素裡再包含乙個linearlayout進行水平排列。

android:layout_weight:它用於描述該子元素在剩餘空間中占有的大小比例。

relativelayout按照各子元素之間的位置關係完成布局。在此布局中的子元素裡與位置相關的屬性將生效。例如android:layout_below, android:layout_above等。子元素就通過這些屬性和各自的id配合指定位置關係。注意在指定位置關係時,引用的id必須在引用之前,先被定義,否則將出現異常。

relativelayout是android五大布局結構中最靈活的一種布局結構,比較適合一些複雜介面的布局。

relativelayout裡常用的位置屬性如下:

android:layout_toleftof —— 該元件位於引用元件的左方

android:layout_torightof —— 該元件位於引用元件的右方

android:layout_above —— 該元件位於引用元件的上方

android:layout_below —— 該元件位於引用元件的下方

android:layout_alignparentleft —— 該元件是否對齊父元件的左端

android:layout_alignparentright —— 該元件是否齊其父元件的右端

android:layout_alignparenttop —— 該元件是否對齊父元件的頂部

android:layout_alignparentbottom —— 該元件是否對齊父元件的底部

android:layout_centerinparent —— 該元件是否相對于父元件居中

android:layout_centerhorizontal —— 該元件是否橫向居中

android:layout_centervertical —— 該元件是否垂直居中

framelayout是五大布局中最簡單的乙個布局,在這個布局中,整個介面被當成一塊空白備用區域,所有的子元素都不能被指定放置的位置,它們統統放於這塊區域的左上角,並且後面的子元素直接覆蓋在前面的子元素之上,將前面的子元素部分和全部遮擋。顯示效果如下,第乙個textview被第二個textview完全遮擋,第三個textview遮擋了第二個textview的部分位置。

absolutelayout是絕對位置布局。在此布局中的子元素的android:layout_x和android:layout_y屬性將生效,用於描述該子元素的座標位置。螢幕左上角為座標原點(0,0),第乙個0代表橫座標,向右移動此值增大,第二個0代表縱座標,向下移動,此值增大。在此布局中的子元素可以相互重疊。在實際開發中,通常不採用此布局格式,因為它的介面**過於剛性,以至於有可能不能很好的適配各種終端。

一、tablelayout簡介

tablelayout類以行和列的形式對控制項進行管理,每一行為乙個tablerow物件,或乙個view控制項。

當為tablerow物件時,可在tablerow下新增子控制項,預設情況下,每個子控制項佔據一列。

當為view時,該view將獨佔一行。

二、tablelayout行列數的確定

tablelayout的行數由開發人員直接指定,即有多少個tablerow物件(或view控制項),就有多少行。

tablelayout的列數等於含有最多子控制項的tablerow的列數。如第一tablerow含2個子控制項,第二個tablerow含3個,第三個tablerow含4個,那麼該tablelayout的列數為4.

三、tablelayout可設定的屬性詳解

tablelayout可設定的屬性包括全域性屬性及單元格屬性。

1、全域性屬性也即列屬性,有以下3個引數:

android:stretchcolumns    設定可伸展的列。該列可以向行方向伸展,最多可佔據一整行。

android:shrinkcolumns     設定可收縮的列。當該列子控制項的內容太多,已經擠滿所在行,那麼該子控制項的內容將往列方向顯示。

android:collapsecolumns 設定要隱藏的列。

示例:android:stretchcolumns=」0″           第0列可伸展

android:shrinkcolumns=」1,2″         第1,2列皆可收縮

android:collapsecolumns=」1」         隱藏第二列

說明:列可以同時具備stretchcolumns及shrinkcolumns屬性,若此,那麼當該列的內容n多時,將「多行」顯示其內容。(這裡不是真正的多行,而是系統根據需要自動調節該行的layout_height)

2、單元格屬性,有以下2個引數:

android:layout_column    指定該單元格在第幾列顯示

android:layout_span        指定該單元格佔據的列數(未指定時,為1)

示例:android:layout_column=」1″    該控制項顯示在第1列

android:layout_span=」2″        該控制項佔據2列

說明:乙個控制項也可以同時具備這兩個特性。

android 五大布局

android的介面是有布局和元件協同完成的,布局好比是建築裡的框架,而元件則相當於建築裡的磚瓦。元件按照布局的要求依次排列,就組成了使用者所看見的介面。android的五大布局分別是linearlayout 線性布局 framelayout 單幀布局 relativelayout 相對布局 abs...

Android五大布局

線性布局linerlayout 按照垂直或者水平的順序依次排列子元素,每乙個子元素都位於前乙個元素之後。如果是垂直排列,那麼將是一 個n行單列的結構,每一行只會有乙個元素,而不論這個元素的寬度為多少 如果是水平排列,那麼將是乙個單行n列的結構。如果搭建兩 行兩列的結構,通常的方式是先垂直排列兩個元素...

Android五大布局

1.相對布局 relativelayout 允許子元素指定它們相對於其父元素或兄弟元素的位置,這是實際布局中最常用的布局方式之一。特點 相對於其他空間的位置,和相對父元素的位置進行布局 第一類 屬性值為true或false android layout centerhrizontal 水平居中 an...