Android學習(七)—— Android佈局
Android佈局
1、LinearLayout
線性佈局,這種佈局在平時的開發中用的最多,內部控制元件只能水平或豎直進行排列,在搭建較複雜的介面時會有點麻煩。
常用屬性
- android:orientation 控制控制元件排列方向,屬性值為垂直(vertical)和水平(horizontal),預設水平方向。
- android:gravity:內部控制元件對齊方式,常用屬性值有center、center_vertical、center_horizontal、top、bottom、left、right等。
- android:layout_gravity 設定自身相對於父元素的佈局。
- android:layout_weight:權重,用來分配當前控制元件在剩餘空間的大小
- 注意:使用權重一般要把分配該權重方向的長度設定為零,比如在水平方向分配權重,就把width設定為零。
效果圖
2、RelativeLayout
相對佈局,可以讓子控制元件相對於兄弟控制元件或父控制元件進行佈局,可以設定子控制元件相對於兄弟控制元件或父控制元件進行上下左右對齊。
注意:這個佈局中的控制元件一定要加id才可以進行佈局
常用屬性
(1)相對於父控制元件,例如:android:layout_alignParentTop=“true”
- android:layout_alignParentTop 控制元件的頂部與父控制元件的頂部對齊;
- android:layout_alignParentBottom 控制元件的底部與父控制元件的底部對齊;
- android:layout_alignParentLeft 控制元件的左部與父控制元件的左部對齊;
- android:layout_alignParentRight 控制元件的右部與父控制元件的右部對齊;
(2)相對給定Id控制元件,例如:android:layout_above=“@id/**”
- android:layout_above 控制元件的底部置於給定ID的控制元件之上;
- android:layout_below 控制元件的底部置於給定ID的控制元件之下;
- android:layout_toLeftOf 控制元件的右邊緣與給定ID的控制元件左邊緣對齊;
- android:layout_toRightOf 控制元件的左邊緣與給定ID的控制元件右邊緣對齊;
- android:layout_alignBaseline 控制元件的baseline與給定ID的baseline對齊;
- android:layout_alignTop 控制元件的頂部邊緣與給定ID的頂部邊緣對齊;
- android:layout_alignBottom 控制元件的底部邊緣與給定ID的底部邊緣對齊;
- android:layout_alignLeft 控制元件的左邊緣與給定ID的左邊緣對齊;
- android:layout_alignRight 控制元件的右邊緣與給定ID的右邊緣對齊;
(3)居中,例如:android:layout_centerInParent=“true”
- android:layout_centerHorizontal 水平居中;
- android:layout_centerVertical 垂直居中;
- android:layout_centerInParent 父控制元件的中央;
效果圖
簡單來說就是先寫好一個控制元件,其他控制元件的位置會以第一個控制元件的位置作為標準進行定位。
3、FrameLayout
幀佈局或叫層佈局,從螢幕左上角按照層次堆疊方式佈局,後面的控制元件覆蓋前面的控制元件。該佈局在地圖開發中經常用到。
常用屬性
- android:layout_width="match_parent" 設定寬度
- android:layout_height="match_parent" 設定高度
效果圖
4、AbsoluteLayout
絕對佈局中將所有的子元素通過設定android:layout_x 和 android:layout_y屬性,將子元素的座標位置固定下來,即座標(android:layout_x, android:layout_y) ,螢幕左上角為座標(0,0),橫向往右為正方,縱向往下為正方。實際應用中,因為Android終端一般機型比較多,這種佈局用的比較少。
常用屬性
- android:layout_x="20dp" 設定橫座標
- android:layout_y="20dp" 設定縱座標
效果圖
5、TableLayout
表格佈局,適用於多行多列的佈局格式,每個TableLayout是由多個TableRow組成,一個TableRow就表示TableLayout中的每一行,這一行可以由多個子元素組成。
注意:在TableLayout中,單元格可以為空,但是不能跨列,意思是隻能不能有相鄰的單元格為空。
常用屬性
(1)TableLayout常用屬性:
- android:shrinkColumns:設定可收縮的列,內容過多就收縮顯示到第二行
- android:stretchColumns:設定可伸展的列,將空白區域填充滿整個列
- android:collapseColumns:設定要隱藏的列
- 列的索引從0開始,shrinkColumns和stretchColumns可以同時設定。
(2)TableRow常用屬性:
- android:layout_column:第幾列
- android:layout_span:佔據列數
效果圖