Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >android gridlayout点击事件,Android GridLayout

android gridlayout点击事件,Android GridLayout

作者头像
全栈程序员站长
发布于 2022-08-12 08:50:12
发布于 2022-08-12 08:50:12
1.1K0
举报

大家好,又见面了,我是你们的朋友全栈君。

译者注:说实话 我确实没用过GridLayout 好好认识一下吧!

android开发者每天都在问自己一个问题:我到底应该用哪个layout

然而GridLayout在当前开发中的情况如下:

大多数开发者并不知道这个布局

一些开发者知道GridLayout但是因为某些原因没有使用

只有少部分开发者花时间了解和积极使用

这是我为什么要写这篇文章的原因,因为我觉得这个布局被不公平遗忘了

为什么我们需要Grid Layout

GridLayout可以让你用一个简单的根view创建一个表格系统布局

我可以用LinearLayout嵌套来实现

是可以做到,但是你会有性能问题当布局层次太深

我可以用RelativeLayout来创建

也行,但是RelativeLayout有一些限制,例如:

没法同时控制2个轴线对齐

当组件需要的空间超出你预期的时候会跑出屏幕或发生重叠因为你不能使用weight等等

换一句话说就是RelativeLayout不够灵活和响应性不足。

例子

让我们实现一个简单的布局包含一个大图片,2个小图标和跟在图标后面的文本

Preview

RelativeLayout

用RelatieveLayout实现起来非常简单,通过关键属性layout_below,layout_toRightOf和layout_alignTop

Code

一眼看上去好像很完美,等你用不同字体size进行布局测试就呵呵了

问题 1 没法同时控制基于2个轴对齐

单行文本应该相对于图标垂直居中,不幸的是RelativeLayout没有提供这个可能性

Preview

问题 2 组件重叠

多行文本会引起重叠,因为text用了layout_alignTop对图标进行对齐

Preview

GridLayout

如你看到的下面图片一样,GridLayout提供更好的表现结果:

文本垂直居中于图标

多行文本不会向下移动组件

Preview

那么怎么实现这个效果呢?首先定义GridLayout为根布局。然后计算你要多少列并通过android:columnCount属性定义,在我们的例子中我们有2列。

因为GridLayout里面的views是一个接一个被放置的,所以没必要明确定义row和column

如果你想撑开view让它占用2行或2列,你可以用layout_columnSpan/layout_rowSpan属性

还有一件重要的事要记住-如果你想你的view使用所有可用的空间,不要设置width为match_parent,应该设置成0dp同时设置属性layout_gravity=”fill”

Code

总结

GridLayout一方面是一个非常强大的工具,它提供了很好的灵活性和性能,另外一方面它需要一些时间来学习了解它如何工作,你通常需要花更多的时间来开发和维护这样的布局。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132091.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
android布局属性具体解释[通俗易懂]
1:LinearLayout ( 线性布局 ) (里面仅仅能够有一个控件,而且不能设计这个控件的位置,控件会放到左上角)
全栈程序员站长
2022/07/10
8840
Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局
TableLayout是将子类向分别排列成行和列的布局视图容器,TableLayout是由许多TableRow对象组成的,表格布局以行列的形式管理子控件,每一个单元是一个TableRow或者View对象。
达达前端
2019/07/03
4.2K0
Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局
gridlayout布局
android layout button encoding 框架 编程
全栈程序员站长
2022/09/05
5810
新推出的GridLayout网格布局
本期主要学习的是网格布局是Android 4.0新增的布局,和前面所学的TableLayout表格布局 有点类似,不过他有很多前者没有的东西,也更加好用。 一、认识GridLayout 网格布局实现了控件的交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发。网格布局用一组无限细的直线将绘图区域分成行、列和单元,并指定控件的显示区域和控件在该区域的显示方式 下表显示了 GridLayout常用的XML属性及相关方法说明。 XML属性相关方法说明android:align
分享达人秀
2018/02/02
1.5K0
新推出的GridLayout网格布局
跟我学Android之六 布局
相对布局是一种通过设置相对位置进行的布局,相对布局使用<RelativeLayout>标签进行配置,对应代码中的类是android.widget.RelativeLayout,布局中的视图通过设置相互间的相对位置进行排列,相对的排列位置,相对的对齐方式;相对布局使用拖放式比较方便。
张哥编程
2024/12/17
1660
跟我学Android之六  布局
Android 4.0开发之GridLayOut布局实践
在上一篇教程中http://blog.csdn.net/dawanganban/article/details/9952379,我们初步学习了解了GridLayout的布局基本知识,通过学习知道,GridLayout可以用来做一个象TableLayout这样的布局样式,但其性能及功能都要比tablelayout要好,比如GridLayout的布局中的单元格可以跨越多行,而tablelayout则不行,此外,其渲染速度也比tablelayout要快。在本文中,将指导读者进一步加深对GridLayout的认识,带大家实做一个简单的数字键盘布局,从中体会GridLayout的用法。
全栈程序员站长
2022/09/02
4100
GridLayout 使用总结「建议收藏」
GridLayout是Android4.0引入的网格布局,使用它可以减少布局嵌套。也算是常用,但一直没仔细看过,今天研究一下
全栈程序员站长
2022/07/02
2K0
GridLayout 使用总结「建议收藏」
Android六大布局
Android六大布局 LinearLayout(线性布局) 常用属性 FrameLayout(帧布局) 常用属性 RelativeLayout(相对布局) 常用属性 AbsoluteLayout(绝对布局) 常用属性 TableLayout(表格布局) 常用属性 GridLayout(网格布局) 常用属性 TableLayout 和 GridLayout的区别 gravity和layout_gravity的区别 为什么 XML 资源文件要从文本格式编译成二进制格式 Android 资源管理框架又是如何快速
是阿超
2022/11/02
2.7K0
Android六大布局
Android布局详解
Android基本布局分别是:线性布局LinearLayout、相对布局RelativeLayout、帧布局FrameLayout、表格布局TableLayout、网格布局GridLayout。
全栈程序员站长
2022/09/05
1.6K0
Android布局属性详解
RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft 贴紧父元素的左边缘 andr
Angel_Kitty
2018/04/08
9580
轻松掌握RelativeLayout相对布局
在前面三期中我们对LinearLayout进行了详细的解析,LinearLayout也是我们用的比较多的一个布局。但在实际开发中使用LinearLayout远远不够,我们本期一起来学习RelativeLayout。 一、认识RelativeLayout RelativeLayout,又叫相对布局,使用<RelativeLayout>标签。相对布局通常有两种形式,一种是相对于容器而言的,一种是相对于控件而言的。 下表显示了RelativeLayout支持的常用XML属性及相关方法的说明
分享达人秀
2018/02/02
1K0
轻松掌握RelativeLayout相对布局
六大布局之RelativeLayout
上一期我们给大家讲解了FrameLayout的使用,这一期我们为大家讲解一下RelativeLayout(相对布局)的使用,RelativeLayout是Android的六大布局之一,也是我们常用的布局之一,下面我们一起开始学习吧~
下码看花
2019/09/02
6990
六大布局之RelativeLayout
浅谈GridLayout(网格布局)
Android 4.0 布局-->GridLayout 网格布局 以行列单元格的形式展示内部控件排列,可以实现类似计算机键盘效果 ,也可以实现可自动变行的标签群效果 使用GridLayout ,有效减少了布局的深度,渲染速度也是很快的 类似于LinearLayout 的使用,额外添加了一些特有的属性 先来看下GridLayout的一些属性介绍 1、 android:orientation="horizontal|vertical" 内部控件是水平排列的还是竖直排列的    与LinearLayout使用方法
听着music睡
2018/05/18
1.5K0
11/20Android开发笔记
1、Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE [字面意思:安装失败,不够贮存] 删了一些应用也不管用,最后重启了一下手机,没事了。 2、RelativeLayout布局EditText与TextView等组件重叠 使用 android:layout_marginBottom  android:layout_marginLeft  android:layout_marginRight  android:layout_marginTop 进行
WindCoder
2018/09/19
5780
Android 六大布局之 GridLayout(网格布局)「建议收藏」
1、GridLayout 布局是 Android 4.0 以后引入的新布局,和 TableLayout(表格布局) 有点类似,不过它功能更多,也更加好用
全栈程序员站长
2022/08/23
8.4K0
Android 六大布局之 GridLayout(网格布局)「建议收藏」
Android入门教程(三)-安卓UI文档教程
对Android五大布局的描述,分别是 FrameLayout (框架布局),LinearLayout (线性布局),AbsoluteLayout (绝对布局),RelativeLayout (相对布局),TableLayout (表格布局)。
达达前端
2022/04/28
6400
1.[Andriod]之Andriod布局 VS WinPhone布局
0.写在前面的话 近来被HTML+CSS的布局折腾的死去活来,眼巴巴的看着CSS3中的flex,grid等更便捷更高效的的布局方式无法在项目中应用,心里那叫一个窝火啊,去你妹的兼容性,,, 最近体验下Android开发,第一件事就是翻翻看安卓提供的布局方式方便不,因为笔者现在是做WP的,于是乎有了这篇比较两个平台提供的一些基础的布局方式的博文。 另外,安装完Android Studio后,在Android的SDK的目录下有一个docs的文件夹,这里面提供的有离线的官方文档。 Android应用在当前元素上的
blackheart
2018/01/19
1.3K0
1.[Andriod]之Andriod布局 VS WinPhone布局
六大布局之非常用布局
Hi,大家好,新的一周开始啦,让我们继续遨游在Android的知识海洋中吧!上一次我们讲到了RelativeLayout,相信不少小伙伴已经着手实战,那么今天我们为大家带来六大布局中剩下的三个布局。本篇文章可以和前面的FrameLayout一同归类到Android非常用布局之中,虽然不常用,但是小伙伴们也要知道它的一些基础属性哦~
下码看花
2019/09/02
1.7K0
六大布局之非常用布局
Android入门教程(三)
FrameLayout 布局的使用效果,就是所有布局里的控件都会自动往左上角放置。所有的元素都会依次覆盖上一次的元素。那么我们现在写代码试试看:
达达前端
2022/04/28
6760
Android应用界面开发——布局
线性布局可以控制各组件横向排列(通过设置属性android:orientation属性控制),也可控制各组件纵向排列。
trampcr
2018/09/28
1.4K0
相关推荐
android布局属性具体解释[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档