主要通过自定义布局,将Item放在里面,就可以轻松解决问题!代码非常简单!
package com.example.two.defineview;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;
public class GridViewItemLayout extends LinearLayout {
public GridViewItemLayout(Context context) {
super(context);
}
public GridViewItemLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public GridViewItemLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
//重写onMeasure()方法,注意下面参数!
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(getDefaultSize(0,widthMeasureSpec),getDefaultSize(0,heightMeasureSpec));
int childWidthSize = getMeasuredWidth();
int childHeightSize = getMeasuredHeight();
widthMeasureSpec = heightMeasureSpec = MeasureSpec.makeMeasureSpec(childWidthSize,MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}