重写GridView,让GridView高度实现自适应

最近有一个需求,就是使用GridView,需要让高度实现自适应,于是乎在网上找了一个,发现很多人都是写了一个方法,重写测量高度,但是我用了之后并没有什么用,也许是我用错了地方。
这个需求一定要解决的,于是到处找资料,突然发现我之前写的一篇文章,自定义控件
我也给出连接,如果有需要的朋友可以看看
http://www.jianshu.com/p/730ff94f2982 自定义控件

于是我想GridView也可以重写呀,于是重写了一下GridView,并重写了它的测量方法;很简单的几行代码,实现了功能,我把代码也贴一下,给大家一个借鉴和参考:

/**
 * author guofei_wu
 * email [email protected]
 */
public class MyGridView extends GridView {

    public MyGridView(Context context) {
        super(context);
    }

    public MyGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int heightSpec;
        // 这几行代码比较重要
        if(getLayoutParams().height == AbsListView.LayoutParams.WRAP_CONTENT){
            heightSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
        }else{
            heightSpec = heightMeasureSpec;
        }

        super.onMeasure(widthMeasureSpec, heightSpec);
    }
}

你可能感兴趣的:(重写GridView,让GridView高度实现自适应)