<該文章參考各大博客以及書籍總結(jié)而來,,如有問題歡迎指出^ ^> 一,、五大傳統(tǒng)布局+新布局
二、介紹 (一)LinearLayout 1.簡(jiǎn)介 線性布局,,是最常用的布局之一,,這個(gè)布局會(huì)將它所包含的控件在線性方向上依次排列,排列方向可以設(shè)定為水平方向或垂直方向,。 2.屬性 排列方向: 1 android:orientation="horizontal" //水平 2 android:orientation="vertival" //垂直 對(duì)齊方式: 1 android:gravity="centestar|end|top|left|right|center_vertical|center_horizontal" 2 android:layout_gravity 注意:android:gravity 指本元素的子元素相對(duì)它的對(duì)齊方式 android:layout_gravity指本元素相對(duì)它的父元素的對(duì)齊方式 但凡加上'layout_'前綴的屬性,,則意味著是本元素相對(duì)其父元素的屬性 center :居中顯示,但并不表示顯示在LinearLayout的中心,當(dāng)LinearLyout線性方向?yàn)榇怪狈较驎r(shí),,等同于center_horizental,;水平方向時(shí),等同于cental_vertical start和left end和right :這里對(duì)于中國(guó)的情況,,兩者的效果是相同的,。left是絕對(duì)的左邊,right是絕對(duì)的右邊,,而start會(huì)根據(jù)不同的國(guó)家改變習(xí)慣,。 子控件的大小: 1 android:layout_weight ="1" //權(quán)重 2 android:layout_width="match_parent|wrap_content|xdp" 3 android:layout_height="match_parent|wrap_content|xdp" 注意:layout_weight :用來分配當(dāng)前控件在剩余空間的大小 當(dāng)我們是使用layout_weight時(shí),,此時(shí)控件的寬度不應(yīng)該再用layout_width來決定,,這里指定0dp是一種比較貴規(guī)范的寫法。(dp是Android中用于指定控件大小,、間距等屬性的單位)
(二)RelativeLayout 1.簡(jiǎn)介 相對(duì)布局相對(duì)于線性布局更為隨意,,它可以通過相對(duì)定位的方式讓空間出現(xiàn)在布局的任何位置。相對(duì)布局可以讓子控件相對(duì)于兄弟控件或父控件進(jìn)行布局,。 2.屬性 子控件常用布局:
1 //相對(duì)于父控件 2 android:layout_alignParentTop //空間的頂部與父控件的頂部對(duì)齊 3 androif:layout_alignParentBottom //控件的底部與父控件的底部對(duì)齊 4 android:layout_alignParentLeft //控件的左部與父控件左部對(duì)齊 5 android:layout_alignParentRight //控件的右部與父控件的右部對(duì)齊 6 7 //相對(duì)給定id控件 8 android:layout_above //控件的底部置于給定控件之上 9 android:layout_below //控件的底部置于給定控件之下 9 android:layout_toLeftOf //控件的右邊緣于給定控件左邊緣對(duì)齊 10 android:layout_toRightOf //控件的左邊緣于給定控件右邊緣對(duì)齊 11 12 android:layout_alighBaseline //控件的baseline與給定控件的baseline對(duì)齊 13 android:layout_alignTop //控件的頂部邊緣與給定控件的頂部邊緣對(duì)齊 14 android:layout_alignBottom //控件的底部邊緣與給定控件的底部邊緣對(duì)其 15 android:layout_alignLeft //控件的左邊緣與給定控件的左邊緣對(duì)齊 16 android:layout_alignRight //控件的右邊緣與給定控件的右邊緣對(duì)齊 17 18 //居中 19 android:layout_centerHorizontal //水平居中 20 android:layout_centerVertical //垂直居中 21 android:layout_centerparent //父控件中央 22 23 //屬性值為具體像素值:dp,、px 24 android:layout_marginBottom //離某元素底邊緣的距離 25 android:layout_marginLeft //離某元素做邊緣的距離 26 android:layout_marginRight //離某元素右邊緣的距離 27 android:layout_marginTop //李某元素上邊緣的距離 28 android:padding 29 android:paddingTop 30 android:paddingLeft 31 android:paddingRight
注意:當(dāng)一個(gè)控件去引用另外一個(gè)控件的id時(shí),該控件一定要定義在引用控件的后面,,不然會(huì)出現(xiàn)找不到id的情況 'align' 排列,;‘alignParent’排列在父容器的某個(gè)位置 在最新版本的Android中,單獨(dú)使用包含Start或者End屬性的話,,會(huì)報(bào)錯(cuò),,提示需要再加入Left和Right屬性;而單獨(dú)使用Left和Right屬性,,會(huì)提示一個(gè)warning,,提示推薦加入Star或者End屬性 margin 邊緣(外邊距);padding 襯墊,,填充(內(nèi)邊距)
(三)FrameLayout 1.簡(jiǎn)介 最簡(jiǎn)單的一種布局,,所有的控件都會(huì)默認(rèn)擺放在布局的左上角。后續(xù)添加的控件會(huì)覆蓋前一個(gè),。幀布局的應(yīng)用場(chǎng)景并不是很多,,不過經(jīng)常配合Fragment使用/ 2.屬性 1 android:foreground //設(shè)置改幀布局的前景圖像 2 android:foregroundGravity //設(shè)置前景圖像顯示的位置
(四)AbsoluteLayout 1.簡(jiǎn)介 絕對(duì)布局中將所有的子元素通過android:layout_x和android:layout_y屬性,將子元素的坐標(biāo)位置固定下來,。屏幕左上角為坐標(biāo)(0,0),,橫向往右為正方,縱向往下為正方,。
(五)TableLayout 1.簡(jiǎn)介,。 表格布局,,適用于多行多列的布局格式,每個(gè)TableLayout是由多個(gè)TableRow組成,,一個(gè)TableRow就表示TableLayout中的每一行,,這一行可以由多個(gè)子元素組成。實(shí)際上TableLayout和TableRow都是LineLayout線性布局的子類,。但是TableRow的參數(shù)android:orientation屬性值固定為horizontal,,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT,。所以TableRow實(shí)際是一個(gè)橫向的線性布局,,且所以子元素寬度和高度一致。 2.屬性 1 android:shrinkColumns: //設(shè)置可收縮的列,,內(nèi)容過多就收縮顯示到第二行 2 android:stretchColumns: //設(shè)置可伸展的列,,將空白區(qū)域填充滿整個(gè)列 3 android:collapseColumns: //設(shè)置要隱藏的列 4 5 //子控件常用屬性: 6 android:layout_column://第幾列 7 android:layout_span://占據(jù)列數(shù) 注意:在TableLayout中,單元格可以為空,,但是不能跨列,,意思是只能不能有相鄰的單元格為空 列的索引從0開始,shrinkColumns和stretchColumns可以同時(shí)設(shè)置,。
|
|