Android应用开发之GridLayout(网格布局)_android gridlayout_Bynull的博客-程序员秘密

技术标签: android  Android应用开发技术  

在这里插入图片描述

GridLayout

网格布局是Android 4.0以后引入的一个新的布局.

它和前面所学的TableLayout(表格布局) 有点类似,不过有很多前者没有的东西,也更加好用.

特点:

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

常用属性

GridLayout属性:

属性 作用
android:columnCount 最大列数
android:rowCount 最大行数
android:orientation GridLayout中子元素的布局方向
android:alignmentMode alignBounds:对齐子视图边界 alignMargins :对齐子视距内容,默认值
android:columnOrderPreserved 使列边界显示的顺序和列索引的顺序相同,默认是true
android:rowOrderPreserved 使行边界显示的顺序和行索引的顺序相同,默认是true
android:useDefaultMargins 没有指定视图的布局参数时使用默认的边距,默认值是false

子元素属性:

属性 作用
android:layout_column 指定该单元格在第几列显示
android:layout_row 指定该单元格在第几行显示
android:layout_columnSpan 指定该单元格占据的列数
android:layout_rowSpan 指定该单元格占据的行数
android:layout_gravity 指定该单元格在容器中的位置
android:layout_columnWeight (API21加入)列权重
android:layout_rowWeight (API21加入) 行权重

GridLayout在API21时引入了android:layout_columnWeight和android:layout_rowWeight来解决平分问题

使用layout_columnSpanlayout_rowSpan时要加上layout_gravity属性,否则没有效果

实例代码

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="4"
    android:rowCount="5"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="0"
        android:layout_column="0"
        android:layout_rowWeight="1"
        android:text="Button0" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="1"
        android:layout_column="1"
        android:layout_rowWeight="1"
        android:text="Button1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="2"
        android:layout_column="2"
        android:layout_rowWeight="1"
        android:text="Button2" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="3"
        android:layout_column="1"
        android:layout_rowWeight="1"
        android:text="Button3" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="4"
        android:layout_column="0"
        android:layout_columnSpan="2"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:text="Button4" />

</GridLayout>

运行效果:

请添加图片描述

今天的分享就回到这里了 ^_^

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012739527/article/details/123894081

智能推荐

Android开发中遇到关于Byte位运算通信协议类项目的文档解读、分析_android byte数据解析_Engineer-Jsp的博客-程序员秘密

Android开发中经常会遇到Byte位运算通信协议的项目,一个简单的Byte可能隐藏着极其复杂的数据,需要根据既定的协议来解析和封装。那么开发中要怎么解决这类项目呢,还是要多熟悉文档和源码。这类项目笔者15年的时候接触过,是独立开发的。因为当初入行不到两年,所以接触的这类项目可以说是初次接触,看个文档对于那时很菜鸟的我来说简直是要了我的命,但是客户的对接工程师是个C老鸟,人也不错,我有问题就会找...

单元测试(junit+dubbo+mockito)_dubbo junit_lovewater的博客-程序员秘密

关于单元测试请先回忆下面几个问题:1)单元测试是否依赖网络?如果依赖网络,当没有网的时候怎么办?2)单元测试是否支持多次可重复执行?3)dubbo接口怎么单元测试?4)如何计算单元测试对代码的覆盖率?在回答上面几个问题前请先看下面介绍:1、准备测试环境1)引入依赖包: &lt;dependency&gt; &lt;groupI...

QT错误 fatal error: QtGui/QAction: No such file or directory_羅卜卜的博客-程序员秘密

在Qt 4中,QAction是QtGui模块的一部分。在Qt 5中,它是QtWidgets模块的一部分。最好的选择是在包含标题时不指定模块名称。将#include &lt;QTGui/QAction&gt;改为#include &lt;QAction&gt;

SDI高清视频光端机特点有哪些?_杭州飞畅的博客-程序员秘密

SDI视频光端机设计和生产是适用于电视行业的高可靠、高性能的串行数字光传输设备,信号格式从19.4Mbps到1.485Gbps, 系统支持SMPTE292、SMPTE259M、SMPTE297M、SMPTE305M、SMPTE310M以及DVB-ASI(EN50083-9)等数字电视格式的信号,满足工业级产品的要求。那么,SDI高清视频光端机有哪些特点呢?接下来我们就跟随飞畅科技的小编一起来看看吧!SDI视频光端机特点:1、兼容SDI/ASI标清/高清数字视频信号,速率143-1485 Mbps;

C/C++程序员需要注意的11个知识点(转)_c++的程序应该注意哪点_zb872676223的博客-程序员秘密

下面的这些要点是对所有的C++程序员都适用的。我之所以说它们是最重要的,是因为这些要点中提到的是你通常在C++书中或网站上无法找到的。如:指向成员的指针,这是许多资料中都不愿提到的地方,也是经常出错的地方,甚至是对一些高级的C++程序员也是如此。这里的要点不仅仅是解释怎样写出更好的代码,更多的是展现出语言规则里面的东西。很显然,它们对C++程序员来说是永久的好资料。我相信这一篇文章会使你收

程序员为什么热衷于造轮子,升职加薪吗?_老子讨厌造轮子_小傅哥的博客-程序员秘密

作者:小傅哥博客:https://bugstack.cn - 原创系列专题文章沉淀、分享、成长,让自己和他人都能有所收获!????一、前言哪个架构师没造过轮子?你想过这样一件事吗?是先具备能力在安排职位,还是先安排职位在学习? ????什么?走后门,你出去!就像我们上学考试、跆拳道考段、晋升答辩一样,都是先具备了可胜任上一阶段的能力,才给予相应的职位。所以,架构师造轮子从做程序员时候就开始了,只不过到了架构师阶段可以造出更好的轮子。鉴于实际业务开发的紧急程度,不会允许你造轮子。但造轮子,

随便推点

到底什么是SOA?_soa全称_乘风如水的博客-程序员秘密

     SOA,听是我们听得多了,各种厂商不断推广他们的方案,但是它实际是什么呢?让我们通过书本来慢慢揭开它的神秘面纱。     SOA的英文全称为“Service Oriented Architecture”,中文翻译为“面向服务的架构”①。那么它就是Web Service吗?还是说是服务总线架构技术吗?其实,这两者都不是。书中明确指出:SOA本质是一种思想,它超越了所有的具体技术(如Web ...

浏览器UserAgent发展历史_j_bleach的博客-程序员秘密

某天,我做一个小项目,需要判断一下浏览器类型。简单的呀。 控制台敲下:navigator.userAgent 浏览器回应:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36天,这串是啥?你怎么连话都说不清楚?我对userAgent

Android:ListView内被选中的item改变背景色(真实可行的方法!!!)_cxcxrs-辰星程序人生的博客-程序员秘密

文章目录一、 界面实现效果二、 将ListView所在布局文件的背景色设为灰色三、 在ListView所在的java文件中四、 后记一、 界面实现效果二、 将ListView所在布局文件的背景色设为灰色&lt;!-- ListView所在的布局文件的背景色设为灰色:android:background="#ececec" --&gt;&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;LinearLayout xmlns:android="htt

Linux下启动jar包的shell脚本_weixin_38169722的博客-程序员秘密

product-service.sh文件内容如下#!/bin/sh APP_NAME=product-service#jar包路径JAR_PATH='/usr/local/app/jars'#jar名称JAR_NAME=product-service-1.0.0.jar#日志路径LOG_PATH='/usr/local/app/logs'#PI...

高可用 hadoop HA 搭建教程_伦杰周的博客-程序员秘密

高可用 hadoop HA 搭建教程基础环境配置基础环境配置文件配置core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml解释说明相关命令:基础环境配置基础环境配置点击跳转文件配置=========================================================core-site.xml&lt;!-- 指定zookeeper的存放地址--&gt;&lt;property&gt; &lt;name&g

WIN2008R2修改远程桌面端口(不重启系统)_2008r2服务器远程端口修改_阿·修的博客-程序员秘密

本来总结到word里面的,无图有真相。直接搬运到这里保存。§1.1. 目的前提:服务器的远程桌面已经启用,端口为默认端口3389。路由器转发规则已经建立,通过远程桌面能够登录该服务器。将远程桌面端口修改为33890§1.2. 步骤1:防火墙和路由器服务器防火墙高级设置新增规则:允许端口33890入站访问。路由器新增转发规则:33890转发到该服务器。如果服务器上有其他安全软件(例如安全狗),则允许33890访问。§1.3. 步骤2:修改注册表两处[HKEY_LOCAL_MA...

推荐文章

热门文章

相关标签