Android UI布局

一、線性布局-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)注“簡書作者”。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android布局是應(yīng)用界面開發(fā)的重要一環(huán),在Android中,共有五種布局方式,分別是: LinearLayou...
    楓羽望空閱讀 10,144評論 1 9
  • 歡迎Follow我的GitHub, 關(guān)注我的CSDN. 其余參考Android目錄. 轉(zhuǎn)載請注明出處:http:/...
    passiontim閱讀 4,933評論 0 31
  • Android功能強大,界面華麗,但是眾多的布局屬性就害苦了開發(fā)者,下面這篇文章結(jié)合了網(wǎng)上不少資料.第一類:屬性值...
    HangChen閱讀 5,174評論 0 24
  • 摘---- 我最喜歡的事是推薦書,推薦那些帶給我快樂,引發(fā)我思考的書,推薦給老師、家長和孩子。我的推薦總是熱情洋溢...
    溜噠L閱讀 442評論 0 0
  • 我們生活在一個物質(zhì)極為豐富的時代,有最尖端的科技,豐富的社交,幾乎無限的消費品和層出不窮的創(chuàng)意?,F(xiàn)代人也很懂得追求...
    圈子賬本君閱讀 554評論 0 0

友情鏈接更多精彩內(nèi)容