android gridLayout

安卓布局LinearLayout —— RelativeLayout —— TableLayout —— GridLayout LinearLayout 线性布局:只能横向或者纵向布局 取决于orientation属性 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizont... 阅读详情

原文摘自: http://blog.youkuaiyun.com/jianghuiquan/article/details/8299973


之前有在想,android 如何实现Web这种超出自动换行的布局 其实用gridLayout 便可以实现,比如不确定图片数量,每行确定显示多少个,超出自动换行,

这种场景应很常见,再次便不用图片说明了


GridLayout网格布局

  android4.0以上版本出现的GridLayout布局解决了以上问题。GridLayout布局使用虚细线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列。而GridLayout使用的其实是跟LinearLayout类似的API,只不过是修改了一下相关的标签而已,所以对于开发者来说,掌握GridLayout还是很容易的事情。GridLayout的布局策略简单分为以下三个部分:

  首先它与LinearLayout布局一样,也分为水平和垂直两种方式,默认是水平布局,一个控件挨着一个控件从左到右依次排列,但是通过指定Android:columnCount设置列数的属性后,控件会自动换行进行排列。另一方面,对于GridLayout布局中的子控件,默认按照wrap_content的方式设置其显示,这只需要在GridLayout布局中显式声明即可。

       其次,若要指定某控件显示在固定的行或列,只需设置该子控件的android:layout_row和android:layout_column属性即可,但是需要注意:android:layout_row=”0”表示从第一行开始,android:layout_column=”0”表示从第一列开始,这与编程语言中一维数组的赋值情况类似。

  最后,如果需要设置某控件跨越多行或多列,只需将该子控件的android:layout_rowSpan或者layout_columnSpan属性设置为数值,再设置其layout_gravity属性为fill即可,前一个设置表明该控件跨越的行数或列数,后一个设置表明该控件填满所跨越的整行或整列。

   我们下面通过XML布局和Java代码布局两种方式分别举例:

  

一、XML方式布局

  1、创建一个空白Activity

  

  3、打开“res/layout/activity_main.xml”文件,修改成以下代码。

  

  (1)第①部分

  <?xml version="1.0" encoding="utf-8">,每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言,<?xml version="1.0">。这行代码表示按照1.0版本的XML规则进行解析。encoding = "utf-8"表示此xml文件采用utf-8的编码格式。编码格式也可以是GB2312。

  (2)第②部分

  <GridLayout…… 表示采用网格布局管理器。

  (3)第③部分

  android:layout_width="match_parent" android:layout_height="match_parent"表示布局管理器宽度和高充将填充整个屏幕宽度和高度。

  (4)第④部分

  android:orientation="horizontal"表示采用水平布局,垂直为vertical。

  (5)第⑤部分

  该网格布局管理器采用5行4列。

  4、我们向GridLayout放入16个按钮Button。

    

  5、找不同。

  

  我们对一下,找出不同地方。

  (1)第①部分

  目标0按钮是占据2个格;当前0按钮占1格。  

[html]  view plain  copy
  1. <Button    
  2.       android:id="@+id/zero"    
  3.       android:layout_columnSpan="2"      //列扩展两列  
  4.       android:layout_gravity="fill"      //按钮填充满两格  
  5.       android:text="0"/>    

  (2)第②部分

  目标·按钮在第4行第3列;当前·按钮在第4行第2列。

  解决办法:0按钮占据2格后,·按钮会自动到这个位置。

  (3)第③部分

  目标+按钮在第4行第4列并且行扩展2行;当前·按钮在第4行第3列。

  解决办法:由于0按钮占据2格后,目标+会自动到这个位置。  

[html]  view plain  copy
  1. <Button    
  2.       android:id="@+id/plus"    
  3.       android:layout_rowSpan="2"      //行扩展两行   
  4.       android:layout_gravity="fill"     //按钮填充满两格  
  5.       android:text="+"/>    

  (4)第④部分

  目标=按钮在第5行,占据3列位置;当前=按钮在第4行第4列。

  解决办法:位置由于0的扩展后,目前=按钮会自动到第5行;列扩展同0按钮。  

[html]  view plain  copy
  1. <Button    
  2.       android:id="@+id/equal"    
  3.       android:layout_columnSpan="3"       //列扩展3列  
  4.       android:layout_gravity="fill"       //按钮填充满3格   
  5.       android:text="="/>      

 

  完整源代码: 

[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <GridLayout                                     //网络布局管理器  
  3.     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"                                                  //5行  
  8.     android:columnCount="4" >                                             //4列  
[html]  view plain  copy
  1. //16个按钮  
  2. <Button                                        
  3.       android:id="@+id/one"    
  4.       android:text="1"/>    
  5. <Button    
  6.       android:id="@+id/two"    
  7.       android:text="2"/>    
  8.  <Button    
  9.       android:id="@+id/three"    
  10.       android:text="3"/>    
  11. <Button    
  12.       android:id="@+id/devide"    
  13.       android:text="/"/>    
  14. <Button    
  15.       android:id="@+id/four"    
  16.       android:text="4"/>    
  17. <Button    
  18.       android:id="@+id/five"    
  19.       android:text="5"/>    
  20. <Button    
  21.       android:id="@+id/six"    
  22.       android:text="6"/>    
  23. <Button    
  24.       android:id="@+id/multiply"    
  25.       android:text="×"/>    
  26. <Button    
  27.       android:id="@+id/seven"    
  28.       android:text="7"/>    
  29. <Button    
  30.       android:id="@+id/eight"    
  31.       android:text="8"/>    
  32. <Button    
  33.       android:id="@+id/nine"    
  34.       android:text="9"/>    
  35.   <Button    
  36.       android:id="@+id/minus"    
  37.       android:text="-"/>    
  38.   <Button    
  39.       android:id="@+id/zero"    
  40.       android:layout_columnSpan="2"    
  41.       android:layout_gravity="fill"    
  42.       android:text="0"/>    
  43. <Button    
  44.       android:id="@+id/point"    
  45.       android:text="."/>    
  46.   <Button    
  47.       android:id="@+id/plus"    
  48.       android:layout_rowSpan="2"    
  49.       android:layout_gravity="fill"    
  50.       android:text="+"/>    
  51.   <Button    
  52.       android:id="@+id/equal"    
  53.       android:layout_columnSpan="3"    
  54.       android:layout_gravity="fill"    
  55.       android:text="="/>      
[html]  view plain  copy
  1. </GridLayout>    

  6、最终显示效果如下:

      

 

二、Java代码方式布局

  上面我们已经了解采用XML进行LinearLayout布局,我们现在再来学习一下如何使用Java代码完成与之同样功能。

  暂略。

 

题外话:

[html]  view plain  copy
  1. <strong>AbsoluteLayout绝对布局</strong>  
  2.   
  3. AbsoluteLayout绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置!  
  4.   
  5. 该布局目前已经淘汰,知道就行了!  
(七)Android布局类型(网格布局GridLayout) Android布局类型(网格布局GridLayout) 阅读详情

相关推荐

Android 布局系列(五):GridLayout 网格布局的使用

通过这次实现,我们展示了如何利用 GridLayout 布局来创建一个简单而实用的计算器界面。GridLayout 提供了灵活的网格系统,让我们能够轻松地安排和对齐每个按钮,确保布局既美观又符合用户的操作习惯。虽然我们实现的只是一个基础的计算器界面,但通过这种布局方式,开发者可以进一步扩展功能,比如添加更多的操作符、实现历史记录、支持更多复杂的计算等。总的来说,GridLayout 是一个功能强大的布局工具,在很多需要精确对齐和分布的场景下都能大显身手。

weixin_39339407的博客 3633

Android基本布局-GridLayout_网格布局

Android基本布局-GridLayout_网格布局

m0_59586434的博客 1万+

Android GridLayout 布局详细介绍以及代码实现

GridLayout 是 Android 开发中非常有用的布局方式,具有灵活、强大和适应性强的特点。通过合理使用 GridLayout,开发者可以轻松地实现各种复杂的界面布局,提升应用的用户体验和可用性。然而,需要注意的是在使用过程中要注意性能和复杂性,避免出现不必要的问题。希望本文对你理解和应用 GridLayout 布局有所帮助!

半夏微凉科技 869

Android应用开发之GridLayout(网格布局)

android 应用开发 网格布局

u012739527的博客 1万+

推荐国内可使用的chatGPT的工具

是基于ChatGPT 3.5和ChatGPT 4开发的chatGPT应用程序版,这个应用可以直接使用而不需要魔法,如果我们有自己的APT KEY的话可以一直使用,但是如果没有的话,我们只能使用ChatGPT 3.5 版本的,次数也是有所限制,应该是20次每天,这也足够我们的使用了,响应的速度也是非常的快。

有你真好的博客 1万+

python制作图形化小游戏_创意编程|Python的GUI简易界面设计测测你的反应力

Python的GUI简易界面设计案例测测你的反应力作为初次接触代码编程的你,是不是觉得Python程序除了“码”就是“字”即使是有趣的程序除了烧烧自己的脑,也吸引不到更多人的兴趣,用户体验值接近于0?那你可冤枉了Python,他可是人工智能界的编程语言大咖。今天这个游戏设计就先带领大家,简单体验一下,如何让Python程序图形化。一起来吧!设计我们的小游戏游戏设计思路:电脑随机出...

weixin_34214135的博客 1872

android六大基本布局,【安卓篇】安卓六大布局【六】:GridLayout布局

本文重点讲述了自android4.0版本后新增的GridLayout网格布局的一些基本内容,并在此基础上实现了一个简单的计算器布局框架。通过本文,您可以了解到一些androidUI开发的新特性,并能够实现相关应用。在android4.0版本之前,如果想要达到网格布局的效果,首先可以考虑使用最常见的LinearLayout布局,但是这样的排布会产生如下几点问题:1、不能同时在X,Y轴方向上进行控件的...

weixin_39606048的博客 289

CRISPR筛选全流程指南:从文库构建到数据分析实战

功能基因组学研究需要高效解析基因型与表型的关联,高通量筛选技术是其中的关键工具。基于CRISPR系统的筛选方法通过大规模sgRNA文库扰动基因功能,结合慢病毒递送和测序分析,能够系统鉴定影响细胞增殖、耐药、病毒感染的候选基因。与RNAi或化学小分子筛选相比,CRISPR筛选具有覆盖全基因组、脱靶率低、信号清晰等优势,已广泛应用于药物靶点发现、合成致死和免疫治疗机制研究。本文围绕实验设计与操作中的核心要点展开,涵盖文库扩增、病毒滴度控制、MOI把握、筛选模式选择以及基于MAGeCK的sgRNA丰度分析,并针对

weixin_31188927的博客 289

Android笔记——GridLayout布局

一、GridLayout布局主要属性      1、Orientation:布局方向(horizontal、vertical)      2、RowCount:最大行数      3、ColumnCount:最大列数      4、useDefaultMargins:是否使用默认边距(内部组件之间的边距),默认是:false      5、alignmentMode:对齐模式(边界对其、

David-Kuper的专栏 1206

【异常】Milvus向量数据库的常见错误“collection not loaded“(集合未加载)

Milvus数据库报错"collection not loaded"分析及解决方案。该错误发生在对未加载的集合执行查询操作时,核心原因是集合创建后需先加载到内存才能使用。解决方案包括:1)确认集合是否存在;2)查询前调用loadCollection接口加载集合;3)处理加载超时或失败情况,可检查加载状态;4)确保Milvus服务正常运行。建议在长期不使用集合时释放内存资源。文末附Java代码示例说明具体操作方法。

奶爸的编程之路,也就一周冷个三天 381

uniapp [全端兼容] - 实现人脸识别对比+人脸相似度,从相册选择或拍照上传两张图片进行人脸对比得到人脸相似度及判断是否是同一个人,人脸活体检测及对比(免费纯前端方案+调用第三方API接口方案)

uniApp人脸对比 人脸对比识别 人脸对比相似度,uniapp实现获取手机摄像头权限,调用相机拍照实现人脸识别相似度对比,uniapp实现人脸识别对比,计算两张人脸的相似度,从而判断是否同一个人,并给出相似度评分。uniapp H5网页如何实现人脸相似度比对,uniapp纯前端怎么对比两张图片的相似度,计算两幅图像的相似度,图像相似度对比方法,UNI-APP人脸相似度对比,快速识别两张照片的相似程度(用百分比)图片相似度对比在线测试,图片相似度对比,uniapp微信小程序人脸相似度对比分析,uniapp

🏆 前端领域优质创作者 5023

Android布局之GridLayout的使用总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分

僅此的博客 1万+

抖音无水印视频爬虫实战:从抓包分析到批量下载指定用户作品

抖音作为当前最受欢迎的短视频平台,拥有海量的优质内容。很多用户希望备份自己或他人的作品,但抖音官方并未提供批量下载功能,且直接下载的视频带有平台水印。本文将带领大家从零开始,通过抓包分析、设备模拟、请求签名等核心技术,实现一个完整的抖音无水印视频爬虫系统。本文仅供技术学习和个人备份使用,请勿将爬取的内容用于商业用途或侵犯他人版权,爬取频率请控制合理范围内。目录一、前言二、技术栈概览三、准备工作3.1 环境搭建3.2 抓包分析步骤3.3 关键API发现四、核心技术解密4.1 X-Gorgon签名算法。

2201_76125261的博客 847

记一次相当艰辛的安卓GridLayout单元格合并

参考内容:https://blog.youkuaiyun.com/weixin_39251617/article/details/79711668 这次来的需求中,有个单元格合并的内容,要把动态生成的表格的某一列分类合并。 A a1 a11 A a2 a21 B b1 b11 比如这种数据,A就要合并成一个单元格。 我想了下应该没那么难,就像是html做个计算器嘛! 百度安卓Table,出来一堆tablelayout的内容。看了好一阵后觉得不太对,后来才知道应该用GridLayout。 GridLayout

u012452555的博客 1742

贝叶斯核机回归估计混合物健康效应 【BKMR包】——实操篇

使用 ggplot2包绘制 h 的截面# 绘制总体风险摘要。

三分钟热度 5384

道路缺陷检测实战指南:基于YOLOv11的深度学习系统从搭建到落地

道路缺陷检测项目的每一步,都是“理论→实践→反思→优化”的成长循环。当你看到自己开发的系统能精准识别出道路上的每一处裂缝、每一个坑洼时,那种“技术解决真实问题”的成就感,会让你明白深度学习不止是论文里的公式,更是改变行业的工具。如果过程中遇到模型不收敛、界面功能异常等问题,不妨把问题拆解成“数据是否标注准确?”“模型参数是否合理?”“界面逻辑是否有漏洞?”等小问题逐一排查。记住,每解决一个问题,你就离“能独立落地AI项目的工程师”更近一步。

LXY_LOVE36的博客 172

android gridlayout点击事件,Android GridLayout

译者注:说实话 我确实没用过GridLayout 好好认识一下吧!android开发者每天都在问自己一个问题:我到底应该用哪个layout然而GridLayout在当前开发中的情况如下:大多数开发者并不知道这个布局一些开发者知道GridLayout但是因为某些原因没有使用只有少部分开发者花时间了解和积极使用这是我为什么要写这篇文章的原因,因为我觉得这个布局被不公平遗忘了为什么我们需要Grid La...

weixin_29163581的博客 1001

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android GridLayout布局

activity_main.xml文件内容如下: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" ...

皮皮君的博客 1014

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

安卓布局,GridLayout

布局代码: <?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"> <Button android:layout_width="

没得简介 453

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android 之GridLayout浅谈

在android4.0版本之前,如果想要达到网格布局的效果,首先可以考虑使用最常见的LinearLayout布局,但是这样的排布会产生如下几点问题: 1、不能同时在X,Y轴方向上进行控件的对齐。 2、当多层布局嵌套时会有性能问题。 3、不能稳定地支持一些支持自由编辑布局的工具。        其次考虑使用表格布局TabelLayout,这种方式会把包

watertekhqx的博客 523

android v7 gridlayout,android v7 gridlayout

本文重点讲述了自android4.0版本后新增的GridLayout网格布局的一些基本内容,并在此基础上实现了一个简单的计算器布局框架。通过本文,您可以了解到一些android UI开发的新特性,并能够实现相关应用。在android4.0版本之前,如果想要达到网格布局的效果,首先可以考虑使用最常见的LinearLayout布局,但是这样的排布会产生如下几点问题:1、不能同时在X,Y轴方向上进行控件...

weixin_39787057的博客 172

Android开发之GridLayout

比表格布局更强大的网格布局

ShadyPi的IT笔记 928

【6】Android 布局 - GridLayout

前言 Android4.0 后推出了网格布局 GridLayout ,可视为 TableLayout 的“升级版”。 没有了 TableRow 容器,代码更简洁;个人认为比 TableLayout 好用。 主要体现在: 可自定义布局中组件的排序方式 可自定义行列数 可直接设置组件位于某行列 可设置组件占用那些行列 相关属性 设置GridLayout属性 与 Linea...

Hsy的博客 370

Android GridLayout的使用

Android GridLayout的使用

QYgujingjing的专栏 1444

被遗忘的Android GridLayout

GridLayout这种网格布局容器在某些情形下的确是能帮我们轻松实现想要的布局,并能减少布局的嵌套,提高性能,而我们大部分人却经常忽略这种布局。相信这篇文章能给大家带来一些启发。

蘑菇君的学习之路 4351

android 布局 GridLayout

xmlns:tools="http://schemas.android.com/tools"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:columnCount="4"     android:rowCount="6"     android:la

景上 的博客 414
上一篇: Android gradle build principles, dependencies, and so files, project directory
下一篇: Android 8 common dialog
一朵红杏
博客等级 码龄12年 51粉丝 282原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值