android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:verticalSpacing="35px"?
android:horizontalSpacing="5px"?
android:numColumns="auto_fit"?
android:columnWidth="100px"?
android:stretchMode="columnWidth"?
Android:gravity="center"?/>
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView=inflater.inflate(R.layout.grid_item,parent,false);
params = convertView.getLayoutParams();
params.height=(parent.getHeight()-10)/2;
convertView.setLayoutParams(params);
}
if(convertView.getHeight()==0){
params.height=(parent.getHeight()-10)/2;
convertView.setLayoutParams(params);
}
return convertView;
}
在Adapter中的getView方法中通過計(jì)算減去水平或數(shù)值距離,可以精確的控制一屏可以現(xiàn)實(shí)多少GridView Item
stretchMode:只有在指定了columnWidth的時(shí)候才會(huì)有作用,如果指定了stretchMode而沒有給columnWidth的值,則item不顯示,就是寬為0;
spacingWidth: 剩余的空間用來填空間隙(頂行開始顯示item,最邊上沒有間隙)
spacingWidthUniform:剩余的空間用來填空間隙(所有的item居中顯示,就是最邊上也會(huì)有間隙)
columnWith:剩余的間隙用item的寬度去填充,就是item的寬度自動(dòng)縮放
none:colunm不縮放,頂行開始顯示
horizontalSpacing并不是第一優(yōu)先級(jí):就是如果設(shè)置的item寬度過大,會(huì)擠一塊,并不會(huì)保證一個(gè)最小的間隙。
如果不指定stretchMode,默認(rèn)情況下,item頂行顯示,item的寬度會(huì)根據(jù)屏幕除掉horizontalSpacing之后的剩余寬度自動(dòng)縮放,此時(shí)會(huì)保證horizontalSpacing所設(shè)置的值。