一、RelativeLayout 相對布局
? ? 特點:每個組件相對其他的某一個組件進行定位。
? ?(一)主要屬性
? ? ?1、設置和父組件的對齊:
? ? ? alignParentTop : 設置為true,代表和父布局頂部對齊。
? ? ?其他對齊只需要改變后面的Top為 Left、Right 或者Bottom,來表示和父組件的哪個方向對齊。
? ? 2、設置內部的對齊:
? ? alignRight :? 指定參照的組件ID,也就是當前組件和參照的組件右對齊。
? ? ?其他方位如Baseline、 Left、 Right、 Top、 Bottom等等。
? ?3、設置組件的次序:
toRightOf="組件ID"? ?在指定組件的右邊
toLeftOf="組件ID"? ? 在指定組件的左邊
above="組件ID"?? 在指定組件的上邊
below="組件ID"?? 在指定組件的下邊
? ?5、特殊對齊方式
? ?水平對齊: centerHorizontal=true
? ?垂直對齊: centerVertical = true
? ?相對父組件居中: centerInparent = true
? ? ??
? ? 設計思路:確定一個組件為基準,其他的向基準對齊,再設置外邊距,次序,就能布局好界面。
二、LinerLayout 線性布局
? ?特點:把組件放在一行,或者一列,有順序的排列。
? ?屬性值:
排列方向:?
orienation: horizontal水平、vertical垂直。
?
layout_weight: 設置權重。
三、AbsoluteLayout 絕對布局
? 特點:指定每個組件的坐標和寬高,這是固定的。
?屬性:??
? 指定坐標(原點是左上角):
? ? layout_x:? 指定水平橫坐標
? ? layout_y:? 指定垂直縱坐標
?
? 指定寬高:
? ? ?height: 高度
? ? ?width: 寬度
四、FrameLayout 幀坐標
特點:把組件疊在一起,先加入的在底下,后加入的放在上面一層。
五、TableLayout 表格布局
? ?特點:每個組件占用一個格子,不清楚能不能跨行和跨列。
? 屬性:
? android:stretchColumns 設置該列被拉伸
? android:shrinkColumns 設置該列被收縮
? android:collapseColumns 設置該列被隱藏
子標簽:
? ? ? ?<TableRow> 定義一行,容納其他組件,放在一行中。有多行,就定義多個該標簽。
? ? ? 屬性:
? ? ? ? ? layout_column:指定組件所在的列號,從0開始。
? ? ? ? ? layout_span: 設置跨幾列,默認是1列。
六、GridLayout 網格布局
?特點:和表格布局一樣,但是可以跨行跨列。
? ? ? ? ? ?內部組件按順序添加,默認順序按照行來分配。
?屬性:
? ?columnCount: 指定列數。
? ?orientation:指定方向。
? ?layout_gravity:? 指定 center 和fill的樣式。
? ?columnSpan: 指定占用幾列。
? ?rowSpan: 指定該組件占用幾行。
七、通用屬性:
?1、設置指定方位的邊距
? ? ?marginTop: 設置上方的外邊距。
? ? ?paddingTop:? 設置上方的內邊距
同理,還有其他方位的。
注意:單獨的margin 、padding可以同時設置四周的外邊距和內邊距。