GridLayout(網(wǎng)格布局)
本節(jié)引言
今天要介紹的布局是Android 4.0以后引入的一個新的布局,和前面所學(xué)的TableLayout(表格布局) 有點(diǎn)類似,不過他有很多前者沒有的東西,也更加好用,
可以自己設(shè)置布局中組件的排列方式
可以自定義網(wǎng)格布局有多少行,多少列
可以直接設(shè)置組件位于某行某列
可以設(shè)置組件橫跨幾行或者幾列
另外,除了上述內(nèi)容外,本節(jié)還會給大家使用gridLayout時(shí)會遇到的問題,以及如何解決低版本 sdk如何使用GridLayout的方法!接下來就開始本節(jié)的課程吧!
相關(guān)屬性總結(jié)圖
2.使用實(shí)例:計(jì)算器布局的實(shí)現(xiàn):
運(yùn)行效果圖:
實(shí)現(xiàn)代碼:
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/GridLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="4"
android:orientation="horizontal"
android:rowCount="6" >
<TextView
android:layout_columnSpan="4"
android:layout_gravity="fill"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="../style/images/android-tutorial-gridlayout.html"
android:text="0"
android:textSize="50sp" />
<Button
android:layout_columnSpan="2"
android:layout_gravity="fill"
android:text="回退" />
<Button
android:layout_columnSpan="2"
android:layout_gravity="fill"
android:text="清空" />
<Button android:text="+" />
<Button android:text="1" />
<Button android:text="2" />
<Button android:text="3" />
<Button android:text="-" />
<Button android:text="4" />
<Button android:text="5" />
<Button android:text="6" />
<Button android:text="*" />
<Button android:text="7" />
<Button android:text="8" />
<Button android:text="9" />
<Button android:text="/" />
<Button
android:layout_width="wrap_content"
android:text="." />
<Button android:text="0" />
<Button android:text="=" />
</GridLayout>
代碼解析:代碼很簡單,只是回退與清楚按鈕橫跨兩列,而其他的都是直接添加的,默認(rèn)每個組件都是 占一行一列,另外還有一點(diǎn)要注意的: 我們通過:android:layout_rowSpan與android:layout_columnSpan設(shè)置了組件橫跨 多行或者多列的話,如果你要讓組件填滿橫越過的行或列的話,需要添加下面這個屬性:android:layout_gravity = "fill"!??!就像這個計(jì)算機(jī)顯示數(shù)字的部分!
3.用法歸納:
①GridLayout使用虛細(xì)線將布局劃分為行,列和單元格,同時(shí)也支持在行,列上進(jìn)行交錯排列 ②使用流程:
step 1:先定義組件的對其方式 android:orientation 水平或者豎直,設(shè)置多少行與多少列
step 2:設(shè)置組件所在的行或者列,記得是從0開始算的,不設(shè)置默認(rèn)每個組件占一行一列
step 3:設(shè)置組件橫跨幾行或者幾列;設(shè)置完畢后,需要在設(shè)置一個填充:android:layout_gravity = "fill"
4.使用GridLayout要注意的地方:
因?yàn)镚irdLayout是4.0后才推出的,所以minSDK版本要改為14或者以上的版本, 不然寫布局代碼的時(shí)候,這玩意就會莫名其妙地出錯,說找不到這個GridLayout, 當(dāng)然,如果你要低版本兼容的話,就要看下面的內(nèi)容了!
5.低版本sdk如何使用GridLayout:
解決方法很簡單:只需要導(dǎo)入v7包的gridlayout包即可! v7包一般在sdk下的:sdk\extras\android\support\v7\gridlayout目錄下 如果你沒有的話,也可以到這里下載: gridlayout_v7_jay.rar 但是用的時(shí)候,標(biāo)簽卻是這樣寫的:
<android.support.v7.widget.GridLayout>`
本節(jié)小結(jié)
關(guān)于GridLayout的介紹就到這里~