Android之GridLayout(網(wǎng)格布局)

本節(jié)引言

今天要介紹的布局是Android 4.0以后引入的一個(gè)新的布局,和前面所學(xué)的TableLayout(表格布局) 有點(diǎn)類(lèi)似,不過(guò)他有很多前者沒(méi)有的東西,也更加好用,

  • 可以自己設(shè)置布局中組件的排列方式

  • 可以自定義網(wǎng)格布局有多少行,多少列

  • 可以直接設(shè)置組件位于某行某列

  • 可以設(shè)置組件橫跨幾行或者幾列

另外,除了上述內(nèi)容外,本節(jié)還會(huì)給大家使用gridLayout時(shí)會(huì)遇到的問(wèn)題,以及如何解決低版本 sdk如何使用GridLayout的方法!接下來(lái)就開(kāi)始本節(jié)的課程吧!

1.相關(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="#FFCCCC"
        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> 

代碼解析:

代碼很簡(jiǎn)單,只是回退與清楚按鈕橫跨兩列,而其他的都是直接添加的,默認(rèn)每個(gè)組件都是 占一行一列,另外還有一點(diǎn)要注意的: 我們通過(guò):android:layout_rowSpanandroid:layout_columnSpan設(shè)置了組件橫跨 多行或者多列的話,如果你要讓組件填滿橫越過(guò)的行或列的話,需要添加下面這個(gè)屬性: android:layout_gravity = "fill"!?。【拖襁@個(gè)計(jì)算機(jī)顯示數(shù)字的部分!

3.用法歸納:

①GridLayout使用虛細(xì)線將布局劃分為行,列和單元格,同時(shí)也支持在行,列上進(jìn)行交錯(cuò)排列 ②使用流程:

  • step 1:先定義組件的對(duì)其方式 android:orientation 水平或者豎直,設(shè)置多少行與多少列

  • step 2:設(shè)置組件所在的行或者列,記得是從0開(kāi)始算的,不設(shè)置默認(rèn)每個(gè)組件占一行一列

  • step 3:設(shè)置組件橫跨幾行或者幾列;設(shè)置完畢后,需要在設(shè)置一個(gè)填充:android:layout_gravity = "fill"

4.使用GridLayout要注意的地方:

因?yàn)镚irdLayout是4.0后才推出的,所以minSDK版本要改為14或者以上的版本, 不然寫(xiě)布局代碼的時(shí)候,這玩意就會(huì)莫名其妙地出錯(cuò),說(shuō)找不到這個(gè)GridLayout, 當(dāng)然,如果你要低版本兼容的話,就要看下面的內(nèi)容了!

5.低版本sdk如何使用GridLayout:

解決方法很簡(jiǎn)單:只需要導(dǎo)入v7包的gridlayout包即可! v7包一般在sdk下的:sdk\extras\android\support\v7\gridlayout目錄下 如果你沒(méi)有的話,也可以到這里下載: gridlayout_v7_jay.rar 但是用的時(shí)候,標(biāo)簽卻是這樣寫(xiě)的:

<android.support.v7.widget.GridLayout>

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,001評(píng)論 25 709
  • 看了幾篇文章以及自己寫(xiě)了一些,關(guān)于布局的問(wèn)題,根據(jù)別人的寫(xiě)作總結(jié)一下得到 一.基本理論Android六大基本布局分...
    shuaikun閱讀 878評(píng)論 0 4
  • 我希望我有獨(dú)當(dāng)一面的勇敢,只在我愛(ài)的人面前才會(huì)展現(xiàn)脆弱不堪。
    So_oS閱讀 184評(píng)論 0 0
  • 上周三也就是9月20日,海立股份發(fā)表了一份權(quán)益變動(dòng)公告,內(nèi)容是格力電器在8月29日到9月19日之間通過(guò)集中競(jìng)價(jià)交易...
    酸菜粉兒閱讀 266評(píng)論 0 0
  • 滄州,最早的印象是水滸傳中豹子頭林沖發(fā)配的地方就是這里,還有陸放翁的《訴衷情·當(dāng)年萬(wàn)里覓封侯》當(dāng)年萬(wàn)里覓封侯...
    63e3649f0ec3閱讀 573評(píng)論 2 1

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