一点关于GridLayout的介绍

来源:互联网 发布:中文地址模糊匹配算法 编辑:程序博客网 时间:2024/05/17 16:43

也许鲜有人听说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时玩玩就好了,或者大家如果有好的解决方案也可以在下方评论告诉我,小弟不胜感激。


原创粉丝点击