布局管理器分為:線性布局、表格布局、幀布局、相對布局、絕對布局。
線性布局(LinearLayout):
線性布局像awt中的flowLayout,他們會將容器一個挨著一個的排列起來。LinearLayout不僅可以控制各組件橫向排列(android:orientation),
還可以控制組件縱向排列。LinearLayout跟flowLayout最大區(qū)別是:android的線性布局不會換行:當組件一個挨著一個排列到頭支護
,剩下的組件將不會顯示出來;在awt中flowLayout則會另起一行。
表格布局(TableLayout):
表格布局采用行、列的形式來管理ui組件。TableLayout并不需要明確的來申明包含多少行、列,而是通過添加
TableRow、其他組件來控制表格的行數(shù)和列數(shù)。
每次向tableLayout中添加一個TableRow,該TableRow就是一個表格行,TableRow也是容器,他也可以添加其他組件,每添加一個子組件
該表格就添加一列。如果直接向TableLayout中添加組件,這個組件將直接占一行。
在表格布局中,列的寬度又該列中最寬的容器覺定,整個表格的寬度決定了父容器的寬度(默認是占滿父容器)。
表格布局是顯性布局之類,所以表格布局擁有線性布局的所有屬性。
幀布局(FrameLayout):
FrameLayot為每個加入的組件創(chuàng)建了一個片白區(qū)域(稱為一幀)。所有每個子組件占據(jù)一幀,這些幀都會根據(jù)gravity屬性之心自動對齊。也就是說,幀布局有點類似于awt編程的cardLayout,都把組件一個一個的疊加在一起。與CardLayout 的區(qū)別在于,CardLayout可以將下面的Card移上來,但是frameLayout則沒有提供對應(yīng)的方法。
相對布局(RelativeLayout):
相對布局內(nèi)子組件的位置總是相對于兄弟組件,父組件來決定。
如果A組件的位置是由B組件的位置來決定的,就要先定義B組件,在定義A組件。
絕對布局(AbsoluteLayout):
絕對布局就想awt中的空布局。就是android不提供任何布局控制,而是由開發(fā)人員自己通過X坐標,Y坐標來控制組件的位置。使用這種布局的時候,布局容器不在管理子組件的位置、大小----這些都要開發(fā)人員自己定義。
ps:大部分時候,使用絕對布局都不是一個好思路,因為運行android應(yīng)用手機往往千差萬別,所以使用絕對布局會很難兼顧不同屏幕大小,分辨率問題。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。