Android GridLayout ( 网格布局 )

GridLayout ( 网格布局 ) 和 TableLayout( 表格布局 ) 有点类似,但比 TableLayout( 表格布局 ) 更灵活更好用

  1. 可以自己设置布局中组件的排列方式
  2. 可以自定义网格布局有多少行,多少列
  3. 可以直接设置组件位于某行某列
  4. 可以设置组件横跨几行或者几列

GridLayout

GridLayout 使用虚细线将布局划分为行,列和单元格,同时也支持在行,列上进行交错排列 (虚线不存在的,是我们想象出来的)

一般使用 GridLayout 的流程如下

  1. 先定义组件的对其方式 android:orientation 水平或者竖直,设置多少行与多少列
  2. 设置组件所在的行或者列,记得是从 0 开始算的,不设置默认每个组件占一行一列
  3. 设置组件横跨几行或者几列;设置完毕后,需要在设置一个填充:android:layout_gravity = "fill"

GridLayout 属性

设置排列方式

属性 说明
android:orientation 设置子组件的排列方式,值可以是
vertical 竖直,默认
horizontal 水平
android:gravity 设置子组件的排列方式,值可以是
center 居中
left 靠左
right 靠右
bottom 底部....
如果想要同时使用两种,可以用 left|bottom

设置几行几列

属性 说明
android:rowCount 设置网格布局有几行
android:columnCount 设置网格布局有几列

设置组件所在的行或列

注意: 行列从 0 开始计算,比如第一行是 0 ,第二行是 1

属性 说明
android:layout_row 设置组件位于第几行
android:layout_column 设置组件位于第几列

设置组件跨几行几列

属性 说明
android:layout_rowSpan 设置组件跨几行
android:layout_columnSpan 设置组件跨几列

计算器布局

GridLayout 布局最经典的就是 计算器 了,这是一个天然的网格布局

  1. 首先创建一个 空的 Android 项目 cn.twle.android.GridLayout

  2. 修改 activity_main.xml 使用网格布局 计算器界面

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    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="#dddddd"
        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="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:text="0"
        android:layout_columnSpan="2" 
        android:layout_gravity="fill" />

    <Button
        android:layout_width="wrap_content"
        android:text="." />

    <Button android:text="/" />

</GridLayout>

注意: 如果想要让某个组件填满横越过的行或列,需要添加属性: android:layout_gravity = "fill"

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.