一洪己、布局
在Android中贰谣,有五種常見的布局方式浅侨。
FrameLayout(框架布局)
LinearLayout(線性布局)
AbsoluteLayout(絕對(duì)布局)
RelativeLayout(相對(duì)布局)
TableLayout(表格布局)
1. Frame框架布局
- 特點(diǎn):放入其中的所有元素都被放置在最左上的區(qū)域,而且無法為這些元素指定一個(gè)確切的位置寥假,下一個(gè)子元素會(huì)重疊覆蓋上一個(gè)子元素
- 應(yīng)用場(chǎng)景 :適合瀏覽單張圖片沉填。
2.LinearLayout線性布局
-特點(diǎn):主要提供控件水平或垂直排列的模型疗隶,每一個(gè)子組件都是以垂直或水平的方式來線性排列(默認(rèn)為垂直)。
-應(yīng)用場(chǎng)景:最常用的布局方式
LinearLayout中有一個(gè)重要的屬性:android:layout_weight="1"翼闹,這個(gè)weight代表權(quán)重斑鼻。
3.Absolute絕對(duì)布局
- 已淘汰不考慮
4.RelativeLayout相對(duì)布局
- 特點(diǎn):以某一個(gè)組件作為參照物,來定位下一個(gè)組件的位置的布局方式
- 應(yīng)用場(chǎng)景:適配神器猎荠,推薦使用
5.TableLayout表格布局
- 特點(diǎn):使用TableRow布局坚弱,其中TableRow代表一行。TableRow中的每一個(gè)視圖組件代表一個(gè)單元格关摇。
二史汗、布局屬性配置
1、五種Layout中Item的基礎(chǔ)屬性
- layout_width&layout_height
設(shè)置組件的寬度和高度 - layout_margin+方位&padding+方位
設(shè)置組件的外邊距和內(nèi)邊距 - layout_gravity&gravity
確定view的位置
2拒垃、各種Layout的特有屬性
2.1 FrameLayout
作為最簡(jiǎn)單的Layout,只具備基本屬性
2.2 AbsoluteLayout
已淘汰瓷蛙,不研究悼瓮。
2.3 TableLayout
除了基礎(chǔ)屬性外,還具有一個(gè)LinearLayout的屬性
2.4 LinearLayout
orientation
設(shè)置布局內(nèi)控件的排列方式
vertical 垂直-默認(rèn)值
horizontal 水平layout_weight
比例分配屬性
設(shè)置權(quán)重艰猬,按比例分配界面的空間横堡。
2.5 RelativeLayout
a 相對(duì)于父空間
XML屬性 | 說明 |
---|---|
layout_alignParent+方位 | 相對(duì)于父控件方位對(duì)齊 |
layout_centerVertical | 當(dāng)前父控件的縱向中間位置 |
layout_centerHorizontal | 當(dāng)前父控件的橫向中間位置 |
layout_centerInParent | 當(dāng)前父控件的縱橫向中間位置 |
b 相對(duì)于給定控件
XML屬性 | 說明 |
---|---|
layout_above | 使當(dāng)前控件位于給出id控件的上方 |
layout_below | 使當(dāng)前控件位于給出id控件的下方 |
layout_toLeftOf | 使當(dāng)前控件位于給出id控件的左側(cè) |
layout_toRightOf | 使當(dāng)前控件位于給出id控件的右側(cè) |
layout_alignBottom | 使當(dāng)前控件與給出id控件的底部部重合 |
layout_alignLeft | 使當(dāng)前控件與給出id控件的左邊重合 |
layout_alignRight | 使當(dāng)前控件與給出id控件的右邊重合 |
layout_alignTop | 使當(dāng)前控件與給出id控件的頂部重合 |
layout_alignBaseline | 使當(dāng)前控件的BaseLine與給出id控件t的BaseLine重合 |
例如:
android:layout_below = "@+id/tab_imageview"
3.選擇器selector.xml的屬性
3.1 作用
通過設(shè)置selector.xml可以使控件在不同操作下顯示不同的樣式。
3.2 屬性
XML屬性 | 說明 |
---|---|
android:drawable | 放一個(gè)drawable資源 |
android:state_pressed | 按下狀態(tài)冠桃,如一個(gè)按鈕觸摸或者點(diǎn)擊命贴。 |
android:state_focused | 取得焦點(diǎn)狀態(tài),比如用戶選擇了一個(gè)文本框食听。 |
android:state_hovered | 光標(biāo)懸停狀態(tài)胸蛛,通常與focused state相同,它是4.0的新特性 |
android:state_selected | 選中狀態(tài) |
android:state_enabled | 能夠接受觸摸或者點(diǎn)擊事件 |
android:state_checked | 被checked了樱报,如:一個(gè)RadioButton可以被check了葬项。 |
android:state_enabled | 能夠接受觸摸或者點(diǎn)擊事件 |
以上屬性的取值都是boolean屬性。
3.3 舉例說明
添加一個(gè)button_selector.xml
< selector xmlns:android="http://schemas.android.com/apk/res/android">
< !-- 指定按鈕按下時(shí)的圖片 -->
<item android:state_pressed="true"
android:drawable="@drawable/start_down"
/>
< !-- 指定按鈕松開時(shí)的圖片 -->
<item android:state_pressed="false"
android:drawable="@drawable/start"
/>
4.布局形狀shape.xml的屬性
//默認(rèn)顏色
<solid android:color="#876543"/>
//哪個(gè)方向有邊框線
<padding
android:bottom="0dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
//邊框線顏色迹蛤、大小
<stroke
android:width="1dp"
android:color="#000000" />