前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >新推出的GridLayout网格布局

新推出的GridLayout网格布局

作者头像
分享达人秀
发布于 2018-02-02 09:46:23
发布于 2018-02-02 09:46:23
1.5K01
代码可运行
举报
文章被收录于专栏:分享达人秀分享达人秀
运行总次数:1
代码可运行

本期主要学习的是网格布局是Android 4.0新增的布局,和前面所学的TableLayout表格布局 有点类似,不过他有很多前者没有的东西,也更加好用。

一、认识GridLayout

网格布局实现了控件的交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发。网格布局用一组无限细的直线将绘图区域分成行、列和单元,并指定控件的显示区域和控件在该区域的显示方式

下表显示了 GridLayout常用的XML属性及相关方法说明。

XML属性

相关方法

说明

android:alignmentMode

SetAlignmentMode(int)

设置该布局管理器采用的对齐模式

android:columnCount

setColumnCount(int)

设置该网格的列数量

android:columnOrderPreserved

setColumnOrderPreserved(boolean)

设置该网格容器知否保留列序号

android:rowCount

setRowCount(int)

设置该网格的行数量

android:rowOrderPreserved

setRowOrderPreserved(boolean)

设置该网格容器是否保留行序号

android:useDefaultMardins

setUseDefaultMardins(boolean)

设置该布局管理器是否使用默认的页边距

为了控制GridLayout布局容器中各子组件的布局分布,GridLayout提供了一个内部类: GridLayout.LayoutParams,该类提供了大量的XML属性来控制GridLayout布局容器中子组件的布局分布。

下表显示了 GridLayout.LayoutParams常用的XML属性及相关方法。

XML属性

相关方法

说明

android:layout_column

设置该子组件在GridLayout的第几列

android:layout_columnSpan

设置该子组件在GridLayout横向跨几列

android:layout_gravity

setGravity(int)

设置该子组件采用何种方式占据该网格的空间

android:layout_row

设置该子组件在GridLayout的第几行

android:layout_rowSpan

设置该子组件在GridLayout纵向上跨几行

二、示例

接下来通过一个简单的示例程序来学习GridLayout的使用用法。

同样使用WidgetSample工程,继续使用app/main/res/layout/目录下的activity_main.xml文件,在其中填充如下代码片段:

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:columnCount="4"
            android:rowCount="7">

    <TextView
        android:id="@+id/result_tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_columnSpan="4"
        android:background="#eee"
        android:text="0"
        android:textColor="#000"
        android:textSize="50sp" />

    <Button
        android:id="@+id/clear_btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_columnSpan="4"
        android:text="Clear" />
    <Button
        android:id="@+id/one_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="1" />
    <Button
        android:id="@+id/two_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="2" />
    <Button
        android:id="@+id/three_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="3" />
    <Button
        android:id="@+id/devide_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="/" />
    <Button
        android:id="@+id/four_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="4" />
    <Button
        android:id="@+id/five_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="5" />
    <Button
        android:id="@+id/six_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="6" />
    <Button
        android:id="@+id/multiply_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="×" />
    <Button
        android:id="@+id/seven_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="7" />
    <Button
        android:id="@+id/eight_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="8" />
    <Button
        android:id="@+id/nine_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="9" />
    <Button
        android:id="@+id/minus_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="-" />
    <Button
        android:id="@+id/zero_btn"
        android:layout_columnSpan="2"
        android:layout_columnWeight="1"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:text="0" />
    <Button
        android:id="@+id/point_btn"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="." />
    <Button
        android:id="@+id/plus_btn"
        android:layout_columnWeight="1"
        android:layout_rowSpan="2"
        android:layout_rowWeight="1"
        android:text="+" />
    <Button
        android:id="@+id/equal_btn"
        android:layout_columnSpan="3"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="=" />
</GridLayout>

运行程序,可以看到下图所示界面效果:

到此,关于Android中的六种界面布局已经学习完毕,你都掌握了吗?一定要多动手练习哦,从下期开始一起来学习Android事件处理。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 分享达人秀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
RESETful API 设计规范
如果你的应用很庞大或者你预计它将会变的很庞大,那 应该 将 API 放到子域下(api.example.com)。这种做法可以保持某些规模化上的灵活性。
全栈程序员站长
2022/06/29
1.7K0
【Restful】你还不懂Restful API规范吗?
进入正文之前,先带着小伙伴们了解几个名词,源自百度百科。 标题中涉及的核心名词API,restful
沁溪源
2021/08/13
1.6K0
RESTful API
RESTful架构是一种流行的互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便。 REST是Representational State Transfer的缩写,翻译为“表现层状态转化”。表现层其实就是资源,因此可以理解为“资源状态转化”。 网络应用上的任何实体都可以看作是一种资源,通过一个URI(统一资源定位符)指向它。
王念博客
2019/07/25
1.1K0
RESTful规范
什么是RESTful 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 一、URI规范 1.不用大写; 2.用中杠 - 不用下杠 _ ; 3.参数列表要encode; 4.URI中的名词表示资源集合,使用复数形式。 5.在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词(特殊情况可以使用动词),而且所用的名词往往与数据库的表格名对应
人生不如戏
2018/05/30
2.1K0
什么是RESETful API 设计规范?
现在在开发中前后端都是分离开发,后端提供接口给前台,RESTful 架构,就是目前最流行的一种互联网软件架构,也相当于是接口规范
沈唁
2018/08/21
3.4K0
什么是RESETful API 设计规范?
RESTful API 设计指南
简介 REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的
zhang_derek
2018/04/11
9250
Restful API 的设计规范
本文总结了 RESTful API 设计相关的一些原则,只覆盖了常见的场景。有些规则只是针对自己项目而言,并非其他做法都是错误的。 1. URI URI 表示资源,资源一般对应服务器端领域模型中的实体类。 URI规范 不用大写; 用中杠-而不用下杠_; 参数列表要encode; URI中的名词表示资源集合,使用复数形式; 资源集合与单个资源 资源集合: /zoos //所有动物园 /zoos/1/animals //id为1的动物园内的所有动物 单个资源: /zoos/1 //id为
Clearlove
2019/08/29
7660
Restful API 的设计规范
后端开发必备的 RestFul API 知识
RestFul API 是每个程序员都应该了解并掌握的基本知识,我们在开发过程中设计API的时候也应该至少要满足RestFul API的最基本的要求(比如接口中尽量使用名词,使用POST 请求创建资源,DELETE请求删除资源等等,示例:GET /notes/id:获取某个指定id的笔记的信息)。最近学习过程中接触到这些东西,自己没有时间总结,所以分享一些不错的文章给大家。
Guide哥
2020/05/08
8510
后端开发必备的 RestFul API 知识
RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。 今天,我将介绍RESTful API的设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章(1,2)
ruanyf
2018/04/13
1.1K0
RESTful API 设计指南
RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。
OwenZhang
2021/12/08
6890
RESTful API 设计指南
深入理解什么是RESTful API ?
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。   这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。   网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,** 现在我们必须考虑,如何开发在互联网环境中使用的软件。**
竹清
2018/08/31
6540
深入理解什么是RESTful API ?
深入理解什么是RESTful API ?
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。   这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。   网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,** 现在我们必须考虑,如何开发在互联网环境中使用的软件。**
AWeiLoveAndroid
2018/09/03
3.2K0
深入理解什么是RESTful API ?
前端要知道的RESTful API架构风格
前端程序员在开发完页面后总是要对接口的,跟后端联调有时候还占用蛮大的时间的,那么你了解你和后端对的接口都是什么风格吗,你们公司接口设计的如何,你使用愉快吗?自己在写Node服务时你遇到如何定义好接口的问题吗?下面介绍一种API架构风格,也是目前主流的API设计风格,你或许一直在使用。
张张
2019/12/27
9520
RESTful API
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。
用户1214487
2022/03/26
1.7K0
RESTful API
RESTful接口入门 转
从下面的图片可以看出,当我们需要把相同的数据展示到不同的界面上时,提供一个可以访问后台的接口,前台只负责将数据友好的,华丽的展示出来即可。而不需要为每一个前台都实现很多的后台逻辑。 
wuweixiang
2018/08/14
8500
RESTful API设计指南
在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的”集合”(collection),所以API中的名词也应该使用复数。
lyb-geek
2018/07/26
5320
RESTful 最佳实践
RESTful 是目前最流行的 API 规范,适用于 Web 接口规范的设计。让接口易读,且含义清晰。本文将介绍如何设计易于理解和使用的 API,并且借助 Docker api 的实践说明。
码哥字节
2020/03/24
1.1K0
好 RESTful API 的设计原则
做出一个好的API设计很难。API表达的是你的数据和你的数据使用者之间的契约。打破这个契约将会招致很多愤怒的邮件,和一大堆伤心的用户-因为他们手机上的App不工作了。而文档化只能达到一半的效果,并且也很难找到一个愿意写文档的程序员。
用户1655470
2018/12/11
1K0
DjangoRestFramework,restful规范、APIview、解析器组件、Postman等
  大家还记得CBV的这个视图函数,为什么get请求就能找到类的get方法,post请求就能找到post方法,其内部有个dispatch方法来进行分发,这又怎么玩呢,看源码啦,从哪里看呢?那里先执行,就从哪里看
changxin7
2019/12/20
2.6K0
DjangoRestFramework,restful规范、APIview、解析器组件、Postman等
RESTful简介
REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。 Fielding,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。
江米小枣
2020/06/16
9070
相关推荐
RESETful API 设计规范
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档