核心代码:
public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.home_gridview_item_smore, null); } int ROW_NUMBER = 2;//2行 AbsListView.LayoutParams param = new AbsListView.LayoutParams( android.view.ViewGroup.LayoutParams.FILL_PARENT, mGv.getHeight()/ROW_NUMBER); convertView.setLayoutParams(param);//重新设置宽度和高度 ImageView image = (ImageView) convertView.findViewById(R.id.ItemImage); TextView text = (TextView) convertView.findViewById(R.id.ItemText); Item item = (Item) getItem(position); image.setImageResource(item.ItemImage); text.setText(item.itemtext); return convertView; } 有时候会出现 mGv.getHeight()为NULL的情况,要在GridView控件所在的LinearLayout中添加高度属性或者android:layout_weight="1" 参考: http://blog.chengyunfeng.com/?p=465 http://stackoverflow.com/questions/5690144/how-can-i-force-a-gridview-to-use-the-whole-screen-regardless-of-display-size