如果想要让GridLayout中的子元素能够平均分配,就需要用到

android:layout_columnWeight="1"
android:layout_rowWeight="1"

该属性在API21 (android5.0)时引入,如果要实现全部平均效果,可以在给子元素指定LayoutParams里,指定:

params.columnSpec=GridLayout.spec(GridLayout.UNDEFINED, 1f);

PS: GridLayout.UNDEFINED 代表不指定列的位置。

则效果如下(循环添加20个按钮):

如果想对某一个位置的子元素做出修改,则可以单独指定该元素的Spec, 如要实现下列的效果:

其中的第一个元素,位置在(0,0),它的Spec就可以这样写:

params.rowSpec = GridLayout.spec(0,1,3f);
// 第一个0代表第0行
// 第二个1代表占了多少行
// 第三个3f代表权重是多少
params.columnSpec = GridLayout.spec(0,4,1f);
// 第一个0代表第0列
// 第二个4代表占了多少列
// 第三个1f代表权重是多少

注意:
GridLayout.spec(); 这个方法是一个重点,需要好好看一下,而且由于它有几个重载方法,使用时也要注意。比如说下面两个方法:

 public static Spec spec(int start, int size)
public static Spec spec(int start, float weight)

所以,如果调用的是第二个方法,一定要注意float参数的表示方法,加个f,如:GridLayout.spec(0,1f); 关于weight属性的理解可参考:https://www.cnblogs.com/yongdaimi/p/11821616.html

参考链接:

1. GridLayout使用总结

2. GridLayout 平均分配

GridLayout: GridLayout中Spec属性的更多相关文章

  1. GridLayout: GridLayout使用简介(转)

    Android 布局之GridLayout 1 GridLayout简介 GridLayout是Android4.0新提供的网格矩阵形式的布局控件. GridLayout的继承关系如下:java.la ...

  2. Objective-C中的属性机制

    Objective-C 2.0中的属性机制为我们提供了便捷的获取和设置实例变量的方式,也可以说属性为我们提供了一个默认的设置器和访问器的实现.在学习OC中属性之前我们先要知道为什么要为变量实现gett ...

  3. Javascript中prototype属性详解

    在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不 ...

  4. 转载:java 中对类中的属性使用set/get方法的意义和用法

    经常看到有朋友提到类似:对类中的属性使用set/get方法的作用?理论的回答当然是封闭性之类的,但是这样对我们有什么作用呢?为什么要这样设计?我直接使用属性名来访问不是更直接,代码更简洁明了吗?下面我 ...

  5. DTD中的属性类型

    <![CDATA[文本内容]]> DTD中的属性类型 全名:character data 在标记CDATA下,所有的标记.实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待, ...

  6. java-读取类中的属性名称和值

    方法 /** * 获取类中的所有属性明名称和值(因涉及到可能会是继承关系的父类,所以从f中去属性名称,从f2中取值,两个可以一样,也可以使父类) * @param f:读取属性类(如果取父类的,则这里 ...

  7. 深入理解css中position属性及z-index属性

    深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共 ...

  8. 深入理解JavaScript中的属性和特性

    深入理解JavaScript中的属性和特性 JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaSc ...

  9. 使用angularjs定义html中的属性ng-attr-(suffix)

    html中的属性很多,同样可以使用angularjs来定义: ng-attr-(suffix)=只能使用变量定义 <div title="angularjs中的title"& ...

随机推荐

  1. Xshell6和Xftp6 破解免安装版,无窗口多开限制

    免安装无窗口限制破解版 链接:https://pan.baidu.com/s/1wpFE499qoTjqHrPdQmTn4g提取码:2xcn 如上面的链接失效,可使用以下的链接: https://pa ...

  2. Java开发环境之ElasticSearch

    查看更多Java开发环境配置,请点击<Java开发环境配置大全> 拾章:ElasticSearch安装教程 1)去官网下载ElasticSearch安装包 http://www.elast ...

  3. vsftpd配置文件

    一.默认配置 1. 允许匿名用户和本地用户登录 anonymous_enable=YES local_enable=YES 2. 匿名用户使用的登录名为ftp或anonymous,密码为空:匿名用户不 ...

  4. C#锁对象代码

    private static readonly object SequenceLock = new object(); private static readonly object SequenceL ...

  5. spring boot项目打包成jar后请求访问乱码解决

    在启动jar的时候添加一个配置  -Dfile.encoding=utf-8  java -Dfile.encoding=utf-8 -jar xxxxtest-0.1.jar

  6. opencv图片压缩视频并读取

    import os import cv2 import numpy as np import time path = './new_image/' filelist = os.listdir(path ...

  7. Mysql【第一课】

  8. Supermarket(贪心/并查集)

    题目链接 原创的博客 题意: 超市里有N个商品. 第i个商品必须在保质期(第di天)之前卖掉, 若卖掉可让超市获得pi的利润. 每天只能卖一个商品. 现在你要让超市获得最大的利润. n , p[i], ...

  9. 网络基础知识(http请求)

    http请求的过程 域名解析----TCP连接 ----发送请求-----响应请求----获取html代码----浏览器渲染 TCP是主机对主机层的控制传输协议,提供可靠的连接服务 TCP的三次握手 ...

  10. 题解 UVa10791

    题目大意 多组数据,每组数据给出一个正整数 \(n\),请求出一组数 \(a_1\cdots a_m\),满足 \(LCM_{k=1}^ma_k=n\) 且 \(\sum_{k=1}^ma_k\) 最 ...