Android开发 GridLayout网格布局

摘要:
Android:columnCount描述:GridLayout中的最大列数Android:rowCount描述:Gridlayandroid:columnOrderPreserved描述:设置为true时,列边界的显示顺序与列索引的显示顺序相同。Android:orientation描述:GridLayout中子元素的布局方向。Android:useDefaultMargins注意:当设置为true时,告诉GridLayout在未指定视图布局参数时使用默认边距。android:layout_ColumnSpan description:控件占用的列数,例如android:layout_ColumnSpan=“2”,表示当前子控件占用两列。如果android:layout设置为_ ColumnSpan=“5”,则此子元素控件将占用GridLayout列的一半空间。
属性介绍

本身属性

  • android:alignmentMode
  • 说明:当设置alignMargins,使视图的外边界之间进行校准。可以取以下值:
  • alignBounds – 对齐子视图边界。
  • alignMargins – 对齐子视距内容。
  • android:columnCount
  • 说明:GridLayout的最大列数
  • android:rowCount
  • 说明:GridLayout的最大行数
  • android:columnOrderPreserved
  • 说明:当设置为true,使列边界显示的顺序和列索引的顺序相同。默认是true。
  • android:orientation
  • 说明:GridLayout中子元素的布局方向。有以下取值:
  • horizontal – 水平布局。
  • vertical – 竖直布局。
  • android:rowOrderPreserved
  • 说明:当设置为true,使行边界显示的顺序和行索引的顺序相同。默认是true。
  • android:useDefaultMargins
  • 说明: 当设置ture,当没有指定视图的布局参数时,告诉GridLayout使用默认的边距。默认值是false。

子元素属性

  • android:layout_column 说明:显示该子控件的列,例如android:layout_column=”0”,表示当前子控件显示在第1列,android:layout_column=”1”,表示当前子控件显示在第2列。
  • android:layout_columnSpan 说明:该控件所占的列数,例如android:layout_columnSpan=”2”,表示当前子控件占两列。如果设置android:layout_columnSpan="5",那么这个子元素控件就会占据GridLayout一半列数的空间。需要配合android:layout_gravity="fill" 一起使用
  • android:layout_row 说明:显示该子控件的行,例如android:layout_row=”0”,表示当前子控件显示在第1行,android:layout_row=”1”,表示当前子控件显示在第2行。
  • android:layout_rowSpan 说明:该控件所占的列数,例如android:layout_rowSpan=”2”,表示当前子控件占两行。
  • android:layout_columnWeight 说明:该控件的列权重,与android:layout_weight类似,例如有GridLayout上两列,都设置android:layout_columnWeight = “1”,则两列各占GridLayout宽度的一半
  • android:layout_rowWeight 说明:该控件的行权重,原理同android:layout_columnWeight。
例子

效果图:

Android开发 GridLayout网格布局第1张

xml:

需要注意的问题:

1.在子元素如果不设置 android:layout_width 与 android:layout_height 为 "0dp" 那么子元素在配合 android:layout_rowWeight="1" 与 android:layout_columnWeight="1" 属性时将不会起作用,这时候会出现子元素超出 GridLayout 布局的问题

2.需要子元素撑满剩余布局空间时,需要设置 android:layout_gravity="fill"

<?xml version="1.0" encoding="utf-8"?><!--数字输入盘-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="152dp"
    android:background="@color/snakecommon_color_181B23">

    <GridLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:columnCount="10"
        android:rowCount="2"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:paddingLeft="18dp"
        android:paddingRight="18dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="1"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="2"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="3"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="4"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="5"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="6"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="7"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="8"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="9"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:text="0"
            android:layout_marginStart="2.5dp"
            android:layout_marginEnd="2.5dp"
            android:textColor="@color/snakecommon_color_FFFFFF"
            android:textSize="18sp" />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnSpan="5"
            android:layout_gravity="fill"
            android:paddingVertical="10dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:src="@drawable/snake_ic_delete" />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_rowWeight="1"
            android:layout_columnSpan="5"
            android:layout_gravity="fill"
            android:paddingVertical="10dp"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="5dp"
            android:background="@drawable/snake_shape_white_rectangle_10dp"
            android:src="@drawable/snake_ic_yes" />

    </GridLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

End

免责声明:文章转载自《Android开发 GridLayout网格布局》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇以太坊交易签名制作centos的启动盘下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

css3 animation 属性众妙

转自:凹凸实验室(https://aotu.io/notes/2016/11/28/css3-animation-properties/) 本文不会详细介绍每个 css3 animation 属性(需要了解的同学可先移步 MDN),而是结合实际的开发经验,介绍 css3 animation 属性的一些使用场景及技巧。 1. animation-delay...

Android开发环境搭建详细图解

所谓Android的开发环境,主要是以下两个组件,Android Software Developer Kit(Android软件开发工具包)和Eclipse(编辑器,提供很多方便功能)两大块,下面分别介绍他们的安装方法。 安装Eclipse 要安装Eclipse,首先要安装Java Developer Kit(JDK,Java开发者工具包)...

Notification(Notification的通知栏常驻、Notification的各种样式、Notification点击无效)

转自:http://blog.csdn.net/xy_nyle/article/details/19853591 Android的Notification是android系统中很重要的一个机制, 产品人员常常利用通知栏的方式,跟用户进行弱沟通。拥有推送通知的app要比没有此类功能的app活跃率要高很多。另外类似于墨迹天气,清理大师等 app,也会将通知栏常...

CSS 制作的导航菜单

样式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS制作立体导航 me</title> <style type="text/css">...

【Delphi】RAD 10.4 开发Android时如何在迁移SDK和NDK路径后解决提示 ld: cannot find -lxxx的问题

今天使用lite版本安装了RAD Delphi10.4,发现自动把Android的SDK和NDK目录安装到C盘下,由于C盘容量紧张,所以想把目录迁移到其他路径! 在之前的版本是直接移动目录,在到delphi的tools-options菜单页面中修改SDK路径即可。 但是这次修改后发现在link时仍然找不到路径,查看了delphi的编译命令行信息,发现其中...

Android:控件居中

1. LinearLayout a). android:layout_gravity="center_horizontal"表示该布局在父布局里水平居中,此时其父布局必须拥有android:orientation="vertical"属性; b). android:layout_gravity="center_vertical"表示该布局在父布局里垂直居中...