android五種布局模式

Android布局是應(yīng)用界面開發(fā)的重要一環(huán),在Android中,共有五種布局方式,分別是:LinearLayout (線性布局),F(xiàn)rameLayout(框架布局),AbsoluteLayout(絕對(duì)布局),RelativeLayout(相對(duì)布局),TableLayout(表格布局)。

在windows下有預(yù)覽功能,可以在xml中查看布局的樣式,在linux中無。

一、LinearLayout

? ? ? 線性布局,這個(gè)東西,從外框上可以理解為一個(gè)div,他首先是一個(gè)一個(gè)從上往下羅列在屏幕上。每一個(gè)LinearLayout里面又可分為垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。當(dāng)垂直布局時(shí),每一行就只有一個(gè)元素,多個(gè)元素依次垂直往下;水平布局時(shí),只有一行,每一個(gè)元素依次向右排列。

? linearLayout中有一個(gè)重要的屬性 android:layout_weight="1",這個(gè)weight在垂直布局時(shí),代表行距;水平的時(shí)候代表列寬;weight值越大就越大。

線形布局中預(yù)覽和真機(jī)中完全一樣。

TextView占一定的空間,沒有賦值也有一定的寬高,要特別注意。

二、FrameLayout

? ? ? FrameLayout是最簡(jiǎn)單的一個(gè)布局對(duì)象。它被定制為你屏幕上的一個(gè)空白備用區(qū)域,之后你可以在其中填充一個(gè)單一對(duì)象 — 比如,一張你要發(fā)布的圖片。所有的子元素將會(huì)固定在屏幕的左上角;你不能為FrameLayout中的一個(gè)子元素指定一個(gè)位置。后一個(gè)子元素將會(huì)直接在前一個(gè)子元素之上進(jìn)行覆蓋填充,把它們部份或全部擋?。ǔ呛笠粋€(gè)子元素是透明的)。? ?

三、AbsoluteLayout

   AbsoluteLayout 這個(gè)布局方式很簡(jiǎn)單,主要屬性就兩個(gè) layout_x 和 layout_y 分別定義 這個(gè)組件的絕對(duì)位置。 即,以屏幕左上角為(0,0)的坐標(biāo)軸的x,y值,當(dāng)向下或向右移動(dòng)時(shí),坐標(biāo)值將變大。AbsoluteLayout 沒有頁邊框,允許元素之間互相重疊(盡管不推薦)。我們通常不推薦使用 AbsoluteLayout ,除非你有正當(dāng)理由要使用它,因?yàn)樗菇缑娲a太過剛性,以至于在不同的設(shè)備上可能不能很好地工作。

四、RelativeLayout

? ? 相對(duì)布局可以理解為某一個(gè)元素為參照物,來定位的布局方式。

? ? ? ? ? ? ? ? android:layout_方向 = id? 表示 在這個(gè)id對(duì)應(yīng)的控件的方向上(上|下)

? ? ? ? ? ? ? ? android:layout_align方向? = id 表示和這個(gè)控件的(上下左右)對(duì)齊

? ? ? ? ? ? ? ? android: layout_to方向Of? = id 表示在這個(gè)控件的 左或者右

eg:

? ? ? ? ? ? ? ?   android:layout_below="@id/la1"/>

? ? ? ? ? ? ? ? 將當(dāng)前控件放置于id為la1 的控件下方。

? ? ? ? ? ? ? ? ? ? ? ? android:layout_alignParentRight="true"

? ? ? ? ? ? ? ? 使當(dāng)前控件的右端和父控件的右端對(duì)齊。這里屬性值只能為true或false,默認(rèn)false。

? ? ? ? ? ? ? ? android:layout_marginLeft="10dip"

? ? ? ? ? ? ? ? 使當(dāng)前控件左邊空出相應(yīng)的空間。

? ? ? ? ? ? ? ? ? ? ? ? android:layout_toLeftOf="@id/true"

? ? ? ? ? ? ? ? 使當(dāng)前控件置于id為true的控件的左邊。

? ? ? ? ? ? ? ? ? ? ? ? android:layout_alignTop="@id/ok"

? ? ? ? ? ? ? ? 使當(dāng)前控件與id為ok的控件上端對(duì)齊。

? ? ? ? 五、TableLayout

? ? ? 表格布局類似Html里面的Table。每一個(gè)TableLayout里面有表格行TableRow,TableRow里面可以具體定義每一個(gè)元素。每個(gè)TableRow 都會(huì)定義一個(gè) row (事實(shí)上,你可以定義其它的子對(duì)象,這在下面會(huì)解釋到)。TableLayout 容器不會(huì)顯示row 、cloumns 或cell 的邊框線。每個(gè) row 擁有0個(gè)或多個(gè)的cell ;每個(gè)cell 擁有一個(gè)View 對(duì)象。表格由列和行組成許多的單元格。表格允許單元格為空。單元格不能跨列,這與HTML 中的不一樣。

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

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

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