Android 六大布局之 GridLayout(网格布局)_grillayout-程序员宅基地

技术标签: Android  

目录

GridLayout(网格布局) 简述

计算器布局的实现


GridLayout(网格布局) 简述

1、GridLayout 布局是 Android 4.0 以后引入的新布局,和 TableLayout(表格布局) 有点类似,不过它功能更多,也更加好用

可以自己设置布局中组件的排列方式

可以自定义网格布局有多少行,多少列

可以直接设置组件位于某行某列

可以设置组件横跨几行或者几列

计算器布局的实现

上述效果实现代码如下:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/GridLayout1"
    android:layout_width="fill_parent"
    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="#FFCCCC"
        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:layout_gravity="fill"
        android:text="+" />

    <Button
        android:layout_gravity="fill"
        android:text="1" />

    <Button
        android:layout_gravity="fill"
        android:text="2" />

    <Button
        android:layout_gravity="fill"
        android:text="3" />

    <Button
        android:layout_gravity="fill"
        android:text="-" />

    <Button
        android:layout_gravity="fill"
        android:text="4" />

    <Button
        android:layout_gravity="fill"
        android:text="5" />

    <Button
        android:layout_gravity="fill"
        android:text="6" />

    <Button
        android:layout_gravity="fill"
        android:text="*" />

    <Button
        android:layout_gravity="fill"
        android:text="7" />

    <Button
        android:layout_gravity="fill"
        android:text="8" />

    <Button
        android:layout_gravity="fill"
        android:text="9" />

    <Button
        android:layout_gravity="fill"
        android:text="/" />

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

    <Button
        android:layout_gravity="fill"
        android:text="0" />

    <Button
        android:layout_gravity="fill"
        android:text="=" />

</GridLayout>

<GridLayout android:layout_width="fill_parent":网格布局宽度为填满屏幕

<GridLayout android:layout_height="wrap_content":网格布局高度为包裹内容

<GridLayout  android:columnCount="4":网格布局设置 4 列

<GridLayout  android:rowCount="6":网格布局设置 6 行

<GridLayout  android:orientation="horizontal":网格布局设置为水平布局

回退 与 清空 按钮横跨两列,其它按钮都是直接添加,占用一行一列

通过 android:layout_rowSpan 与 android:layout_columnSpan 设置了组件横跨多行或者多列时,如果想要让组件填满横越过的行或列的话,则可以设置 android:layout_gravity = "fill" 

android:layout_gravity="fill":设置内容对其方式为填充

android:text="0":设置控件内容

android:textSize="50sp":设置控件字体大小

android:background="#FFCCCC":设置控件背景色

android:layout_marginLeft="5dp":设置控件内容距离左侧的距离

 

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

智能推荐

Netty的Reactor线程模型_reactor线程组-程序员宅基地

文章浏览阅读450次。上图是一个Reactor线程模型,基于select(),epoll(),Reactor线程将I/O调用请求和I/O操作分离开,理论上一个Reactor线程能处理N个网络I/O操作,但是当并发量很大的时候,一个Reactor线程就会出现响应缓慢,连接超时等问题。============================================================那么一个Reacto_reactor线程组

word中导出高分辨率pdf_word导出到pdf时可以选dpi吗-程序员宅基地

文章浏览阅读8.3k次,点赞8次,收藏24次。1、需安装有软件:Adobe Acrobat DC,可通过下面链接下载:https://pan.baidu.com/s/1oJJyN5TdayajDqmoTamkVw&shfl=sharepset 提取码:ai7u2、图片格式设置:如何使用matlab进行绘图,一定要保存图片格式为.tiff,这样才不会对文件进行压缩,使原有的图片分辨率保持不变。3、word在插入高分辨率图片前需..._word导出到pdf时可以选dpi吗

树莓派vi编辑文件时退格键和方向键无法正常使用的问题_树莓派 方向键-程序员宅基地

文章浏览阅读1.2k次。【问题现象】树莓派在使用vi编辑文件时,发现退格删除键(Backspace键),无法删除,方向键变成了ABCD还自动换行。【问题解决】此问题根因是树莓派系统预装的是vim-tiny版本,就是简易版,且默认是兼容模式。ubuntu系统也有相同的问题。下面提供的方法通用适用ubuntu。使用vim命令时提示命令不支持,是因为新系统默认装了vi,没有装vim。【方案1】(推荐)卸载重装vim full完整版。参考命令如下:$sudo apt-get remove vim-common$sudo a_树莓派 方向键

java BufferedImage转MultipartFile-程序员宅基地

文章浏览阅读1w次,点赞43次,收藏21次。java生成二维码返回BufferedImage对象,需要转成MultipartFile进行文件上传。转换流程:BufferedImage → InputStream →MultipartFile //得到BufferedImage对象 BufferedImage bufferedImage = JoinTwoImage.testEncode(200, 200, url); //创建一个ByteArrayOutputStream By._bufferedimage转multipartfile

SQL“ORA-00942: 表或视图不存在”报错解决_sql plus表或视图不存在-程序员宅基地

文章浏览阅读5k次。开发环境:eclipse+oracle之前做的项目换了框架,今天在测试时遇到了这个错误分析一下数据库后发现是因为查询语句中涉及到了两个数据库中的表(之前的框架只用到了一个数据库),但是代码没有更新,只能查询一个库中的表,所以导致报错,只要在涉及到引入表名的句子中(我是WHERE和INNER JOIN句子)加上"数据库名.”就可以了。 ..._sql plus表或视图不存在

matlab 线性方程组 限定解的个数,[转载]Matlab解线性方程组笔记-程序员宅基地

文章浏览阅读745次。1. 范数分析 (norm, normest) 常用于误差估计对于线性空间中某个向量 x = { x1, x2, ..., xn}, 其对应的p级范数定义为 abs(x)_p =(sum(abs(xi)^p),i=1,n)^(1/p), 而 +Inf 范数值 abs(x)_+Inf =max(abs(xi)), -Inf 为 abs(x)_-Inf = min(abs(xi));对于矩阵abs(A..._matlab normest

随便推点

linux下 tar解压 gz解压 bz2等各种解压文件使用方法_hornycraft解锁农场-程序员宅基地

文章浏览阅读1.6k次。linux下 tar解压 gz解压 bz2等各种解压文件使用方法2010-03-23 15:15.tar  解包:tar xvf FileName.tar  打包:tar cvf FileName.tar DirName  (注:tar是打包,不是压缩!)  ———————————————  .gz  解压1:gunzip FileName.gz  解压2:gzip -_hornycraft解锁农场

知识图谱入门系列_nerrdfs-程序员宅基地

文章浏览阅读571次。很好的入门解说,包括实现方式及意义第一次在知乎上发帖,有不准确的地方欢迎大家指正!!!,后续会持续更新知识图谱相关技术细节。本贴大概介绍一下知识图谱中相关的技术。知识图谱针对于知识图谱基础知识,领域应用和学术前沿趋势进行介绍。知识图谱介绍知识图谱(Knowledge Graph)以结构化的形式描述客观世界中概念、实体及其关系。是融合了认知计算、知识表示与推理、信息检索与抽取、自然语言处理、Web技术、机器学习与大数据挖掘等等方向的交叉学科。人工智能是以传统符号派与目前流行的深度神经._nerrdfs

Thinkphp 模板/内置标签/Foreach标签_{foreach name="typelist" item="vo"}-程序员宅基地

文章浏览阅读4k次。Foreach标签foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如:&lt;foreach name="list" item="vo"&gt; {$vo.id}:{$vo.name}&lt;/foreach&gt;name表示数据源 item表示循环变量。可以输出索引,如下:&lt;foreach name="list" item..._{foreach name="typelist" item="vo"}

Camera2中方法createcapturesession过时的解决方案_camera.createcapturesession过时-程序员宅基地

文章浏览阅读2.6k次,点赞3次,收藏2次。想做个相机的DEMO,简单地打开相机,然后捕捉画面到手机屏幕上。结果在创建会话的时候遇到了个麻烦。搜遍了CSDN和博客园等等,关于关键方法createCaptureSession全是用过时的参数配置,自己查看源码和API文档,慢慢地给试出来了~感觉真是第一篇关于createCaptureSession方法的讲解。2021年前的这样的参数配置都过时了~ @Deprecated public abstract void createCaptureSession(@NonNull List<S_camera.createcapturesession过时

Redis 设置一个key的过期时间和生僻命令演习(八 .)_redisson 获取某个key并设置时间-程序员宅基地

文章浏览阅读63次。设置key 的存活时间100秒127.0.0.1:6379> EXPIRE HZQ 100查看还有多长时间存活127.0.0.1:6379> ttl HZQ(integer) 96127.0.0.1:6379> ttl HZQ(integer) 90127.0.0.1:6379> ttl HZQ(integer) 83127.0.0.1:6379> ttl HZQ 已经没了(integer) -2..._redisson 获取某个key并设置时间

Ubuntu16.04 编译安装intel SGX Driver,SDK,PSW并验证环境201905_sgx psw bin-程序员宅基地

文章浏览阅读3.1k次。我的环境阿里云ECS主机, 1 vCPU 4 GiB (I/O优化) 抢占性实例(便宜)Ubuntu 16.04root用户完成以下所有操作。其他用户出现问题需要自己解决时间2019年5月github上下载的资源。版本参考下面图片目标利用上述环境部署intel sgx的Driver 、 SDK、PSW。初学者要区分这三者。运行一个demo程序,验证环境。读这篇文章的问,即使是..._sgx psw bin