一点关于GridLayout的介绍

本文介绍了一种减少布局层级的方法——使用GridLayout。此布局方式自Android 4.0起可用,功能类似于TableLayout但更易于使用。文章重点讲解了orientation和columnCount等关键属性,并提及了兼容性限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

也许鲜有人听说GirdLayout, 但它还是存在的。


图中被我用线圈起来的部分,我相信不少人用的方法是一个纵向的LinearLayout,里面套两个横向的LinearLayout,然后在里面放上四个控件,宽度用weight适配。

没毛病。

可是老铁,你就从来没有想过减少一下布局的层级吗?

早在android4.0的时候, 就有了一个GridLayout,功能近似TableLayout,但是使用的便捷度比它好太多。

<GridLayout
                    android:id="@+id/grids"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="170dp"
                    android:orientation="horizontal"
                    android:background="@drawable/shape_home_menu"
                    android:columnCount="4"
                    android:layout_width="match_parent"
                    android:layout_height="150dp">

</GridLayout>
重要的参数有两个:orientation和columnCount。

就像LinearLayout的orientation一样,这个参数决定着子控件的排列规则。

columnCount决定着每行的子控件的个数。(其实还有一个决定GridLayout行数的参数rowCount,但是我在用的时候发现没什么卵用)

你在往里面添加子控件时发现,全都挤在一起,子控件的宽度用weight适配也没用,此时加上一句

android:layout_columnWeight="1"

就好了。哦,行与行之间还是挤在一起,那再加一句

android:layout_rowWeight="1"


不过最大的弊是兼容性问题,网上很多资料中说到会在android5.0以下,上面两个参数不管用,但是我在测试中发现,6.0以下就不管用了。

所以这个布局就在平时写Demo时玩玩就好了,或者大家如果有好的解决方案也可以在下方评论告诉我,小弟不胜感激。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值