Android常用的基本佈局
Android常用的5中基本佈局
Android的基本佈局是搭建Android介面很重要的一環,你所有的控制元件都必須在佈局基本佈局下面來控制,選擇合適的佈局,對你的介面搭建有很大的幫助。
這5中基本佈局是:
- LinearLayout(線性佈局)
- RelativeLayout(相對佈局)
- FrameLayout(幀佈局)
- AbsoluteLayout(絕對佈局)
- TableLayout(表格佈局)
現在還有一種新的佈局叫ConstraintLayout(約束佈局),這幾種佈局中,我們在專案中常用的是LinearLayout、RelativeLayout、FrameLayout,對於ConstraintLayout現在開始慢慢普及,可以去了解一下,其他兩種佈局,在專案中使用率並不是很多,阿杰的專案中好像是沒有使用過這兩種佈局方式。所有的佈局都有2個必須要有的屬性,就是寬(android:layout_width="match_parent")高(android:layout_width="layout_height"
1、LinearLayout(線性佈局)
線性佈局,何為線性,線性、線性,有像線一樣的性質,哈哈,阿杰自己的記憶模式,大家不用照仿。LinearLayout有兩種模式來控制它裡面的控制元件排列方式,一種是垂直模式(android:orientation="vertical"),一種是水平模式(android:orientation="horizontal"
- android:orientation 屬性指定了排列方向是 vertical,如果指定的是horizontal,控制元件就會在水平方向上排列了。
- android:gravity 是用 於指定文字在控制元件中的對齊方式
- android:layout_gravity 是用於指定控制元件在佈局中的對齊方式
- android:layout_weight="1"(權重分佈),這個weight在垂直佈局時,代表行距;水平的時候代表列寬;weight值越大就越大。
- android:visibility=invisible控制佈局是否顯示 :1、顯示 visible 2、不顯示,但佔空間 invisible 3、隱藏 gone
2、RelativeLayout(相對佈局)
是一種相對佈局,控制元件的位置是按照相對位置來計算的,後一個控制元件在什麼位置依賴於前一個控制元件的基本位置,是佈局最常用,也是最靈活的一種佈局。
常用屬性:
- android:id --- 為控制元件指定相應的ID
- android:text --- 指定控制元件當中顯示的文字,需要注意的是,這裡儘量將文字寫到strings.xml檔案中引用
- android:grivity --- 指定控制元件的基本位置,比如說居中,居右等位置這裡指的是控制元件中的文字位置並不是控制元件本身
- android:textSize --- 指定控制元件當中字型的大小
- android:background --- 指定該控制元件所使用的背景色,RGB命名法
- android:width --- 指定控制元件的寬度
- android:height --- 指定控制元件的高度
- android:padding --- 指定控制元件的內邊距,也就是說控制元件當中的內容
- 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的右邊緣對齊;
- android:layout_alignParentTop 如果為true,將該控制元件的頂部與其父控制元件的頂部對齊;
- android:layout_alignParentBottom 如果為true,將該控制元件的底部與其父控制元件的底部對齊;
- android:layout_alignParentLeft 如果為true,將該控制元件的左部與其父控制元件的左部對齊;
- android:layout_alignParentRight 如果為true,將該控制元件的右部與其父控制元件的右部對齊;
- android:layout_centerHorizontal 如果為true,將該控制元件的置於水平居中;
- android:layout_centerVertical 如果為true,將該控制元件的置於垂直居中;
- android:layout_centerInParent 如果為true,將該控制元件的置於父控制元件的中央;
還有很多屬性,大家可以去寫一下,可以研究一下。
3、FrameLayout(幀佈局)
FrameLayout物件好比一塊在螢幕上提前預定好的空白區域,可以將一些元素填充在裡面,如圖片。所有元素都被放置在FrameLayout區域的最左上區域,而且無法為這些元素制指定一個確切的位置,若有多個元素,那麼後面的元素會重疊顯示在前一個元素上。
4、AbsoluteLayout(絕對佈局)
絕對佈局極少使用,在不是絕對要使用的情況下就絕對不要用
5、TableLayout(表格佈局)
TableLayout是指將子元素的位置分配到行或列中。Android的一個TableLayout有許多TableRow組成,每一個TableRow都會定義一個Row。TableLayout容器不會顯示Row,Column,及Cell的邊框線,每個Row擁有0個或多個Cell,每個Cell擁有一個View物件。在使用tablelayout時,應注意每一個cell的寬度。