android 五大布局

2021-06-20 00:55:16 字數 2426 閱讀 1047

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

linearlayout:

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

linearlayout中的子元素屬性android:layout_weight生效,它用於描述該子元素在剩餘空間中占有的大小比例。加入一行只有乙個文字框,那麼它的預設值就為0,如果一行中有兩個等長的文字框,那麼他們的android:layout_weight值可以是同為1。如果一行中有兩個不等長的文字框,那麼他們的android:layout_weight值分別為1和2,那麼第乙個文字框將佔據剩餘空間的三分之二,第二個文字框將佔據剩餘空間中的三分之一。android:layout_weight遵循數值越小,重要度越高的原則。

framelayout:

framelayout是五大布局中最簡單的乙個布局

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

absolutelayout:

absolutelayout是絕對位置布局

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

relativelayout:

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

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 —— 該元件是否垂直居中

tablelayout:

tablelayout顧名思義,此布局為**布局,適用於n行n列的布局格式。乙個tablelayout由許多tablerow組成,乙個tablerow就代表tablelayout中的一行。

tablerow是linearlayout的子類,它的android:orientation屬性值恒為horizontal,並且它的android:layout_width和android:layout_height屬性值恒為match_parent和wrap_content。所以它的子元素都是橫向排列,並且寬高一致的。這樣的設計使得每個tablerow裡的子元素都相當於**中的單元格一樣。在tablerow中,單元格可以為空,但是不能跨列。

Android五大布局

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

Android五大布局

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

Android五大布局

1.linearlayout 線性布局 特點 排列方式只有水平排列和垂直排列兩種,orientation 設定為 horizontal 為水平排列,設定為 verital 為垂直排列 2.relativelayout 相對布局 特點 relativelayout 中子 view 的排列方式是基於彼此...