android 设置Gridlayout中item的位置

来源:互联网 发布:mac xargs i 编辑:程序博客网 时间:2024/05/01 20:41

快过年了,先祝大家新年快了!今天是年前的最后一天上班了,下午也没什么事了,就等着下班的时候打扫打扫卫生,然后就各回各家各找各妈,过年了。

今天就把前段时间使用的Gridlayout的使用总结一下。整个界面的效果图如下:


考虑到需求每一item的宽和高都不固定,比如国家地理现在它相对7日更新是2:1的大小,以后有可能它们会是1:1的大小,为了更好的做适应选用了Gridlayout做基础的布局,整个界面做基本的划分如下九个部分:

   

由于界面上item的个数是不固定的,现在是九个以后可能会有是个或者更多,所以我们按最小的item来划分整个界面布局,这样就将整个界面划分成3行7列。


这样在Gridlayout添加view的时候控制每一个view所占的区域,完成整个页面的布局

       通过在代码实现这种布局主要用到的LayoutParams的两个属性,一个是columnSpec另一个是rowSpec,这两个属性的值确定了以后整个item在gridlayout中的位置也就确定了,例如编号为1 的item,通过设置LayoutParams设定位置代码如下

GridLayout.LayoutParams param = new GridLayout.LayoutParams(); param.columnSpec = GridLayout.spec(0, 1); param.rowSpec = GridLayout.spec(0, 1);view.setLayoutParams(param);gridlayout.addView(view);

其中columnSpec即为设置该view所站的列的下标和列的数目,rowSpec即为所占的行的下标和行的数目。通过代码可以解释为view在Gridlayout中的位置为第0行第0列宽占一列高占一行。

同样其他的view设置好columnSpes和rowSpec就可以确定其在Gridlayout中的位置,每一个item的参数如下图,参数意义为(X, Y ,row,column)。




2 1
原创粉丝点击