如果想要让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. 【数据泵】EXPDP导出表结构

    [数据泵]EXPDP导出表结构(真实案例) BLOG文档结构图         因工作需要现需要把一个生产库下的元数据(表定义,索引定义,函数定义,包定义,存储过程)导出到测试库上,本来以为很简单的, ...

  2. git remote 命令的用法

    查看关联的远程仓库信息 # 查看关联的远程仓库的名称    git remote    # 查看关联的远程仓库的详细信息    git remote -v 添加远程仓库的关联 远程仓库的名称一般默认为 ...

  3. What is Code Quality?

    Ref detail : https://realpython.com/python-code-quality/ What is Code Quality? Of course you want qu ...

  4. Java7与Java8中的HashMap和ConcurrentHashMap知识点总结

    JAVA7 Java7的ConcurrentHashMap里有多把锁,每一把锁用于其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率呢.这 ...

  5. swagger2 注解说明

    整体说明 用于controller类上 注解 说明 @Api 协议集描述 方法上 注解 说明 @ApiOperation - @ApiImplicitParams 方法上 @ApiImplicitPa ...

  6. 微信小程序~下拉刷新PullDownRefresh

      一.onPullDownRefresh回调 代码: // http://itlao5.com onPullDownRefresh: function () { console.log('onPul ...

  7. 项目Beta冲刺(团队)-凡事预则立

    所属课程 软件工程1916|W(福州大学) 作业要求 项目Beta冲刺(团队)-凡事预则立 团队名称 基于云的胜利冲锋队 作业目标 为 Beta 冲刺规划安排 1.讨论组长是否重选的议题和结论 由于我 ...

  8. dimensionality reduction动机---data compression(使算法提速)

    data compression可以使数据占用更少的空间,并且能使算法提速 什么是dimensionality reduction(维数约简)    例1:比如说我们有一些数据,它有很多很多的feat ...

  9. pandas 常用方法使用示例

    from pandas import DataFrame import numpy as np import pandas as pd t={ , , np.nan, , np.nan, ], &qu ...

  10. python 添加Windows权限

    # -*- coding: utf-8 -*- """ Created on Mon Jan 8 09:09:51 2018 @author: coordinate &q ...