android 設置Gridlayout中item的位置

快過年了,先祝大家新年快了!今天是年前的最後一天上班了,下午也沒什麼事了,就等着下班的時候打掃打掃衛生,然後就各回各家各找各媽,過年了。

今天就把前段時間使用的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)。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章