1. 程式人生 > >Android常用的基本佈局

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"

),對於後面的值,阿杰這裡舉例用的是match_parent,這個代表充滿整個手機螢幕,還有wrap_content(根據佈局裡面的控制元件自適應寬高),意思就是說,佈局裡面的內容有多大,這個佈局就有多大。當然,還可以自己設定固定的尺寸,比如100dp,20dp,都可以。

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的寬度。