日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

浅谈android4.0开发之GridLayout布局

發(fā)布時(shí)間:2025/3/15 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈android4.0开发之GridLayout布局 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:李響 ? ? ??

? ?

? ? ?本文重點(diǎn)講述了自android4.0版本號(hào)后新增的GridLayout網(wǎng)格布局的一些基本內(nèi)容,并在此基礎(chǔ)上實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的計(jì)算器布局框架。通過(guò)本文,您可以了解到一些android UI開(kāi)發(fā)的新特性,并可以實(shí)現(xiàn)相關(guān)應(yīng)用。


?????? 在android4.0版本號(hào)之前,假設(shè)想要達(dá)到網(wǎng)格布局的效果,首先能夠考慮使用最常見(jiàn)的LinearLayout布局,可是這種排布會(huì)產(chǎn)生例如以下幾點(diǎn)問(wèn)題:


1、不能同一時(shí)候在X,Y軸方向上進(jìn)行控件的對(duì)齊。

2、當(dāng)多層布局嵌套時(shí)會(huì)有性能問(wèn)題。

3、不能穩(wěn)定地支持一些支持自由編輯布局的工具。


? ? ? ?其次考慮使用表格布局TabelLayout,這樣的方式會(huì)把包括的元素以行和列的形式進(jìn)行排列,每行為一個(gè)TableRow對(duì)象,也能夠是一個(gè)View對(duì)象,而在TableRow中還能夠繼續(xù)加入其它的控件,每加入一個(gè)子控件就成為一列。可是使用這樣的布局可能會(huì)出現(xiàn)不能將控件占領(lǐng)多個(gè)行或列的問(wèn)題,并且渲染速度也不能得到非常好的保證。


? ? ? ? android4.0以上版本號(hào)出現(xiàn)的GridLayout布局攻克了以上問(wèn)題。GridLayout布局使用虛細(xì)線將布局劃分為行、列和單元格,也支持一個(gè)控件在行、列上都有交錯(cuò)排列。而GridLayout使用的事實(shí)上是跟LinearLayout類似的API,僅僅只是是改動(dòng)了一下相關(guān)的標(biāo)簽而已,所以對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),掌握GridLayout還是非常easy的事情。GridLayout的布局策略簡(jiǎn)單分為下面三個(gè)部分:

首先它與LinearLayout布局一樣,也分為水平和垂直兩種方式,默認(rèn)是水平布局,一個(gè)控件挨著一個(gè)控件從左到右依次排列,可是通過(guò)指定android:columnCount設(shè)置列數(shù)的屬性后,控件會(huì)自己主動(dòng)換行進(jìn)行排列。還有一方面,對(duì)于GridLayout布局中的子控件,默認(rèn)依照wrap_content的方式設(shè)置其顯示,這僅僅須要在GridLayout布局中顯式聲明就可以。

?

? ? ? 其次,若要指定某控件顯示在固定的行或列,僅僅需設(shè)置該子控件的android:layout_row和android:layout_column屬性就可以,可是須要注意:android:layout_row=”0”表示從第一行開(kāi)始,android:layout_column=”0”表示從第一列開(kāi)始,這與編程語(yǔ)言中一維數(shù)組的賦值情況類似。


? ? ? ?最后,假設(shè)須要設(shè)置某控件跨越多行或多列,僅僅需將該子控件的android:layout_rowSpan或者layout_columnSpan屬性設(shè)置為數(shù)值,再設(shè)置其layout_gravity屬性為fill就可以,前一個(gè)設(shè)置表明該控件跨越的行數(shù)或列數(shù),后一個(gè)設(shè)置表明該控件填滿所跨越的整行或整列。

利用GridLayout布局編寫(xiě)的簡(jiǎn)易計(jì)算器代碼例如以下(注意:僅限于android4.0及以上的版本號(hào)):

<?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:rowCount="5"android:columnCount="4" ><Buttonandroid:id="@+id/one"android:text="1"/><Buttonandroid:id="@+id/two"android:text="2"/><Buttonandroid:id="@+id/three"android:text="3"/><Buttonandroid:id="@+id/devide"android:text="/"/><Buttonandroid:id="@+id/four"android:text="4"/><Buttonandroid:id="@+id/five"android:text="5"/><Buttonandroid:id="@+id/six"android:text="6"/><Buttonandroid:id="@+id/multiply"android:text="×"/><Buttonandroid:id="@+id/seven"android:text="7"/><Buttonandroid:id="@+id/eight"android:text="8"/><Buttonandroid:id="@+id/nine"android:text="9"/><Buttonandroid:id="@+id/minus"android:text="-"/><Buttonandroid:id="@+id/zero"android:layout_columnSpan="2"android:layout_gravity="fill"android:text="0"/><Buttonandroid:id="@+id/point"android:text="."/><Buttonandroid:id="@+id/plus"android:layout_rowSpan="2"android:layout_gravity="fill"android:text="+"/><Buttonandroid:id="@+id/equal"android:layout_columnSpan="3"android:layout_gravity="fill"android:text="="/> </GridLayout>

終于實(shí)現(xiàn)的界面例如以下所看到的:



參考資料:http://tech.it168.com/a2011/1122/1277/000001277274.shtml

http://hb.qq.com/a/20111214/000865.htm




轉(zhuǎn)載于:https://www.cnblogs.com/hrhguanli/p/4518244.html

總結(jié)

以上是生活随笔為你收集整理的浅谈android4.0开发之GridLayout布局的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。