一、線性布局-LinearLayout(至上而下布局)

其中
android:orientation=”vertical”意思為垂直
方向的線性布局,此處的”vertical”可改為”horizontal”,意思是水平方向的線性布局。
android:layout_width=”match_parent”意思為這個控件的寬度占滿整個屏幕或者父控件,此處的”match_parent”可改為”wrap_parant”,意思是寬度剛好包含住LinearLayout里面的內(nèi)容。
常用布局控件:
android:id為控件指定相應(yīng)的ID
android:text指定控件當(dāng)中顯示的文字,需要注意的是,這里盡量使用strings.xml文件當(dāng)中的字符串
android:gravity控制這個一個控件的位置,比如居中、靠右、底部、上部等
android:textSize指定控件當(dāng)中字體的大小
android:background指定該控件所使用的背景色,RGB命名法
android:layout_weight數(shù)值為幾即該控件占滿整個屏幕的數(shù)值合之幾,比如當(dāng)前Activity中有2個控件,第一個控件是android:layout_weight=”2″,第二個控件是android:layout_weight=”3″,則,第一個控件占整個屏幕的3/5。
android:height指定控件的高度
android:padding*指定控件的內(nèi)邊距,也就是說控件當(dāng)中的內(nèi)容,如android:paddingLeft=”10dip”、android:paddingRight=”10dip”等等。也可以直接android:padding=”10dip”意思是說內(nèi)邊距4面距離都為10.
android:singleLine如果設(shè)置為真的話,則將控件的所有內(nèi)容在同一行當(dāng)中進(jìn)行顯示
二、表格布局-TableLayout
概述:
TableLayout多用于列表的顯示
1、把子元素放到行與列中。
2、不顯示行、列和單元格的邊界線。
3、單元格不能橫跨行,類似于html。

//這一條語句的意思是:是設(shè)置 TableLayout所有行的第二列為拉伸列。也就是說如果每行都有三列的話,剩余的空間由第二列補齊。為0時則是第一列為拉伸列。目的是為了把父控件填滿。
三、嵌套布局即多個布局嵌套使用。

如要實現(xiàn)以下布局:即多個LinearLayout嵌套
//需要注意的是嵌套的LinearLayout權(quán)重都是1,即各自占屏幕的一半。
四、相對布局-RelativeLayout
概念:
類似于CSS+DIV布局。
一個控件的位置,決定于他和周圍控件的關(guān)系。
與其他控件的區(qū)別:
相對布局是依賴與和周圍控件的關(guān)系而決定為位置的,如將A控件放在B控件的下方。
其中以下屬性在實際應(yīng)用中可能經(jīng)常用到
android:layout_above將該控件的底部至于給定ID的控件之上
android:layout_below將該控件的頂部至于給定ID的控件之下
android:layout_toLeftOf將該控件的右邊緣和給定ID的控件的左邊緣對齊
android:layout_toRightOf將該控件的左邊緣和給定ID的控件的右邊緣對齊
android:layout_alignBaseline該控件的baseline和給定ID的控件的baseline對齊
android:layout_alignBottom將該控件的底部邊緣與給定ID控件的底部邊緣
android:layout_alignLeft將該控件的左邊緣與給定ID控件的左邊緣對齊
android:layout_alignRight將該控件的右邊緣與給定ID控件的右邊緣對齊
android:layout_alignTop將給定控件的頂部邊緣與給定ID控件的頂部對齊
android:layout_alignParentBottom如果該值為true,則將該控件的底部和父控件的底部對齊
android:layout_alignParentLeft如果該值為true,則將該控件的左邊與父控件的左邊對齊
android:layout_alignParentRight如果該值為true,則將該控件的右邊與父控件的右邊對齊
android:layout_alignParentTop如果該值為true,則將控件的頂部與父控件的頂部對齊
android:layout_centerHorizontal如果值為真,該控件將被至于水平方向的中央
android:layout_centerInParent如果值為真,該控件將被至于父控件水平方向和垂直方向的中央
android:layout_centerVertical如果值為真,該控件將被至于垂直方向的中央
通俗的理解 Padding 為內(nèi)邊框,Margin 為外邊框
對應(yīng)的屬性為
android:layout_marginBottom=”25dip”
android:layout_marginLeft=”10dip”
android:layout_marginTop=”10dip”
android:layout_marginRight=”10dip”
android:paddingLeft=”1dip”
android:paddingTop=”1dip”
android:paddingRight=”1dip”
android:paddingBottom=”1dip”
如果左右上下都是相同的設(shè)置則可以直接設(shè)置
android:layout_margin=”10dip”
android:padding=”5dip”
四、幀布局和網(wǎng)格布局-FrameLayout & GridLayout
FrameLayout
幀布局,在這種布局下,每個添加的子控件都被放在布局的左上角,并覆蓋在前一個子控件的上層;此外,F(xiàn)rameLayout中的子控件的位置不能被指定。
GridLayout
網(wǎng)格布局,自Android4.0版本(API level 14)后,新增的網(wǎng)格布局。
注意:如果要達(dá)到網(wǎng)格的效果,推薦使用LinearLayout來實現(xiàn),因為使用GridLayout會產(chǎn)生如下問題:
不能同時在(x,y)軸方向上進(jìn)行控件的對齊;
當(dāng)多層布局嵌套的時候會出現(xiàn)性能問題;
不能穩(wěn)定地支持一些支持自由編輯布局的工具。
計算器界面
用GridLayout和Button模仿了一個計算器的按鍵界面。

gridlayout_calculator.jpg
布局源碼
文/Ruj(簡書作者)
原文鏈接:http://www.itdecent.cn/p/4f0a7d319c89
著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),并標(biāo)注“簡書作者”。
文/Ruj(簡書作者)
原文鏈接:http://www.itdecent.cn/p/4f0a7d319c89
著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),并標(biāo)注“簡書作者”。