android 设置Gridlayout中item的位置

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

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

android 设置Gridlayout中item的位置_第1张图片

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

   android 设置Gridlayout中item的位置_第2张图片

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

android 设置Gridlayout中item的位置_第3张图片

这样在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)。

android 设置Gridlayout中item的位置_第4张图片



你可能感兴趣的:(android,GridLayout)