设置不要在控间中滑动:
public class DeliverGridView extends GridView { public DeliverGridView(Context context, AttributeSet attrs) { super(context, attrs); } public DeliverGridView(Context context) { super(context); } public DeliverGridView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
布局文件:
<com.andruby.cigarette.views.DeliverGridView android:id="@+id/cighome_gridview" android:layout_width="fill_parent" android:layout_height="0dp" android:background="@color/grey" android:cacheColorHint="#00000000" android:horizontalSpacing="1.0dip" android:listSelector="@null" android:numColumns="3" android:scrollbars="none" android:stretchMode="columnWidth" android:verticalSpacing="1.0dip" android:layout_weight="2"/>
设置gv占整个界面的权重:(一个5一个2总7)
DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); // 屏幕宽度(像素) int win_height = metric.heightPixels; int height = win_height*2/7;
在adapter的getView()中:
if (convertView == null) { convertView = LayoutInflater.from(ac).inflate( R.layout.grid_item, null); AbsListView.LayoutParams param = new AbsListView.LayoutParams( android.view.ViewGroup.LayoutParams.FILL_PARENT, height /2); //height是传过来的 convertView.setLayoutParams(param); holder = new ViewHolder(); convertView.setTag(holder); holder.tv_share_item_title = (TextView) convertView .findViewById(R.id.tv_share_item_title); holder.tv_share_item_set = (ImageView) convertView .findViewById(R.id.tv_share_item_set); holder.lin_share_item = (LinearLayout) convertView .findViewById(R.id.lin_share_item); } else { holder = (ViewHolder) convertView.getTag(); }