1.GridLayout

官网截图

GridLayout包含的属性如下

android:alignmentMode
属性说明:当设置alignMargins,使视图的外边界之间进行校准。可以取以下值:
alignBounds -- 对齐子视图边界。
alignMargins -- 对齐子视图边距。

android:columnCount
属性说明:GridLayout的最大列数

android:rowCount
属性说明:GridLayout的最大行数

android:columnOrderPreserved
属性说明: 当设置为true,使列边界显示的顺序和列索引的顺序相同。默认是true。

android:orientation
属性说明:GridLayout中子元素的布局方向。有以下取值:
horizontal -- 水平布局。
vertical -- 竖直布局。

android:rowOrderPreserved
属性说明: 当设置为true,使行边界显示的顺序和行索引的顺序相同。默认是true。

android:useDefaultMargins
属性说明: 当设置ture,当没有指定视图的布局参数时,告诉GridLayout使用默认的边距。默认值是false。

这些是GridLayout布局本身的属性。

2 GridLayout子元素属性

上面描述的 GridLayout 的属性,是 GridLayout 布局本身的属性;下面 GridLayout 布局中的元素所支持的属性。GridLayout 布局中的元素的属性,定义在 GridLayout.LayoutParams 中。取值如下:

2.1 android:layout_column

属性说明: 显示该空间的列。例如,android:layout_column="0",表示在第1列显示该控件;android:layout_column="1",表示在第2列显示该控件。

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="wrap_content"
 4     android:layout_height="wrap_content"
 5     android:orientation="horizontal"
 6     android:rowCount="2"
 7     android:columnCount="3" >
 8   <Button
 9         android:id="@+id/one"
10         android:layout_column="1"
11         android:text="1"/>
12   <Button
13         android:id="@+id/two"
14         android:layout_column="0"
15         android:text="2"/>
16    <Button
17         android:id="@+id/three"
18         android:text="3"/>
19   <Button
20         android:id="@+id/devide"
21         android:text="/"/>

对应的显示效果图

layout文件说明
android:orientation="horizontal" -- GridLayout中控件的布局方向是水平布局。
android:rowCount="2"               -- GridLayout最大的行数为2行。
android:columnCount="3"          -- GridLayout最大的列数为3列。
android:layout_column="1"        -- 定义控件one的位于第2列。
android:layout_column="0"        -- 定义该控two件的位于第1列。

2.2 android:layout_columnSpan

属性说明: 该控件所占的列数。例如,android:layout_columnSpan="2",表示该控件占2列。

layout文件示例

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="wrap_content"
 4     android:layout_height="wrap_content"
 5     android:orientation="horizontal"
 6     android:rowCount="2"
 7     android:columnCount="3" >
 8   <Button
 9         android:id="@+id/one"
10         android:layout_column="0"
11         android:layout_columnSpan="2"
12         android:text="1"/>
13   <Button
14         android:id="@+id/two"
15         android:text="2"/>
16    <Button
17         android:id="@+id/three"
18         android:text="3"/>
19   <Button
20         android:id="@+id/devide"
21         android:text="/"/>
22
23 </GridLayout>

对应的显示效果图

layout文件说明

数字"1"实际上占据的空间大小是2列,但是第2列显示为空白。若要第2列不显示空白,需要设置 android:layout_gravity属性,参考下例。

2.3 android:layout_row

属性说明: 该控件所在行。例如,android:layout_row="0",表示在第1行显示该控件;android:layout_row="1",表示在第2行显示该控件。它和 android:layout_column类似。

2.4 android:layout_rowSpan

属性说明: 该控件所占的行数。例如,android:layout_rowSpan="2",表示该控件占2行。它和 android:layout_columnSpan类似。

2.5 android:layout_gravity

属性说明

该控件的布局方式。可以取以下值:
  top                      -- 控件置于容器顶部,不改变控件的大小。
  bottom                -- 控件置于容器底部,不改变控件的大小。
  left                     -- 控件置于容器左边,不改变控件的大小。
  right                   -- 控件置于容器右边,不改变控件的大小。
  center_vertical     -- 控件置于容器竖直方向中间,不改变控件的大小。
  fill_vertical          -- 如果需要,则往竖直方向延伸该控件。
  center_horizontal -- 控件置于容器水平方向中间,不改变控件的大小。
  fill_horizontal      -- 如果需要,则往水平方向延伸该控件。
  center                -- 控件置于容器中间,不改变控件的大小。
  fill                     -- 如果需要,则往水平、竖直方向延伸该控件。
  clip_vertical        -- 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。
  clip_horizontal     -- 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是  right的,则剪切该控件的左边。
  start                  -- 控件置于容器的起始处,不改变控件的大小。
  end                   -- 控件置于容器的结束处,不改变控件的大小。

对应函数: setGravity(int)

layout文件示例:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="wrap_content"
 4     android:layout_height="wrap_content"
 5     android:orientation="horizontal"
 6     android:rowCount="2"
 7     android:columnCount="3" >
 8   <Button
 9         android:id="@+id/one"
10         android:layout_column="0"
11         android:layout_columnSpan="2"
12         android:layout_gravity="fill"
13         android:text="1"/>
14   <Button
15         android:id="@+id/two"
16         android:text="2"/>
17    <Button
18         android:id="@+id/three"
19         android:text="3"/>
20   <Button
21         android:id="@+id/devide"
22         android:text="/"/>
23
24 </GridLayout>

对应的显示效果图

3 应用示例

定义一个简单的计算器界面,包含“0-9、.、+、-、*、/、=、”。用GridLayout实现。

layout文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!-- GridLayout: 5行 4列 水平布局 -->
 3 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
 4     android:layout_width="wrap_content"
 5     android:layout_height="wrap_content"
 6     android:orientation="horizontal"
 7     android:rowCount="5"
 8     android:columnCount="4" >
 9   <Button
10         android:id="@+id/one"
11         android:text="1"/>
12   <Button
13         android:id="@+id/two"
14         android:text="2"/>
15    <Button
16         android:id="@+id/three"
17         android:text="3"/>
18   <Button
19         android:id="@+id/devide"
20         android:text="/"/>
21   <Button
22         android:id="@+id/four"
23         android:text="4"/>
24   <Button
25         android:id="@+id/five"
26         android:text="5"/>
27   <Button
28         android:id="@+id/six"
29         android:text="6"/>
30   <Button
31         android:id="@+id/multiply"
32         android:text="×"/>
33   <Button
34         android:id="@+id/seven"
35         android:text="7"/>
36   <Button
37         android:id="@+id/eight"
38         android:text="8"/>
39   <Button
40         android:id="@+id/nine"
41         android:text="9"/>
42     <Button
43         android:id="@+id/minus"
44         android:text="-"/>
45     <Button
46         android:id="@+id/zero"
47         android:layout_columnSpan="2"
48         android:layout_gravity="fill"
49         android:text="0"/>
50   <Button
51         android:id="@+id/point"
52         android:text="."/>
53     <Button
54         android:id="@+id/plus"
55         android:layout_rowSpan="2"
56         android:layout_gravity="fill"
57         android:text="+"/>
58     <Button
59         android:id="@+id/equal"
60         android:layout_columnSpan="3"
61         android:layout_gravity="fill"
62         android:text="="/>
63 </GridLayout>

转自:http://www.cnblogs.com/skywang12345/p/3154150.html

Android开发UI之GridLayout的使用相关推荐

  1. Android开发UI之隐藏导航栏

    Android开发UI之隐藏导航栏 前言 这一篇我们将讲解: 1.在4.0及以上版本中隐藏导航栏 2.让内容显示在导航栏之后 导航栏进行隐藏,这个特性是Android 4.0版本中引入的. 即便本篇关 ...

  2. Android开发-UI界面--类微信页面设计

    Android开发-UI界面–类微信页面设计 一.功能说明 设计一个类似微信的主页面框架,UI布局为上中下结构,包含了四个tag页面 二.开发技术 ​ 本次用到了layout.xml.控件.监听.fr ...

  3. Android开发-UI开发

    目录 Android UI开发 1.布局的创建 2.布局类型 3.常用控件 4.布局操作 5 样式和主题 6 国际化 Android UI开发 UI(User Interface)界面即应用程序的界面 ...

  4. Android开发UI之Toast的使用

    Toast,A toast provides simple feedback about an operation in a small popup. 对于操作提供一个简单反馈信息. 官网链接:htt ...

  5. android开发ui插件下载,TKUISDK-ANDROID

    更新记录 4.3.4(2021-04-29) 1.修改请求权限在进入教室后 需删除之前版本的请求权限代码,并添加 权限请求回调代码 详见文档进入教室 2.4.1.1 2 新增旁听生身份 3 新增大班课 ...

  6. android开发UI界面布局教学,android UI学习 -- 设置界面的布局(包括style的使用,selector的使用,Checkbox自定义样式,菜单项的样式)...

    最终实现效果如下图: 具体来说就是实现了checkbox自定义选中和为选择样式,菜单项根据不同位置设置不同背景. 先上整体布局文件代码: xmlns:tools="http://schema ...

  7. Android开发UI新技能,你get这个新技能了吗?(附源码详解)

    val state = +state { "Text Field to input" } TextField( value = state.value, onValueChange ...

  8. Android开发UI之Fragment-Tabbed Activity的使用

    使用ADT新建的时候,可以选择Tabbed Activity,选择新建一个工程. 新建的工程中,选择不同的Tab页显示不同的内容,主要是通过SectionsPagerAdapter类中的Fragmen ...

  9. 1、Android开发-使用Android Studio 布局编辑器编写一个小例子

    做为Android 初学者,不管是您从事的是混合移动开发还是原生开发,我认为,学习一下Android UI是非常有必要的.Android stuido 的强大特性可以使用布局编辑器来进行开发界面,以了 ...

最新文章

  1. webstom新增vue模板
  2. 如何开启mysql5.5的客户端服务 命令行打开方法
  3. redis mysql 案例_linux安装redis和mysql的实例讲解
  4. js渲染模板html,一个javascript模板渲染组件,laytpl
  5. canvas高斯模糊算法
  6. mysql数据库赋予权限 版本语法差异
  7. Kafka和其他消息队列
  8. 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave....
  9. php织梦,帝国,帝国 织梦 php
  10. 博客园12月份第1周51Aspx源码发布详情
  11. java网上订餐系统怎么做_基于Java的网上订餐系统
  12. C64x+ 与 C64x Cache 区别
  13. 裤子尺码对照表eur40_裤子的欧码32 34 36 38 40代表什么意思
  14. voyage-linux系统,从Live CD安装Voyage linux到硬盘
  15. 网络基础知识 -It is a rough road that leads to the heights of greatness. 崎岖不平的道路将通往伟大崇高之地。
  16. 清理Win11磁盘的方法
  17. Linux: vi 编辑器
  18. 二进制与十进制科学记数法举例
  19. 部署Kubernetes集群(二进制 v1.18.8版)
  20. 八种炫酷纯CSS加载动画代码

热门文章

  1. dubbo项目安装dubbo.xsd文件
  2. 使用Perl进行网页数据抓取[初学者简明版]
  3. RecyclerView.Adapter的封装(RecyclerAdapter)
  4. 4----apache主配置文件模板和基于域名虚拟主机配置文件模板
  5. python常见错误解决路线图
  6. Linux 命令(6)—— sort 命令
  7. vue动态请求到的多重数组循环遍历,取值问题,如果某个值存在则显示,不存在则不显示。...
  8. 实验2 格式化输入输出和分支语句
  9. SharpGL学习笔记(一) 平台构建与Opengl的hello World (转)
  10. 小程序已成BAT争锋新战场