美文网首页程序员Android开发积累
重写GridView,让GridView高度实现自适应

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

作者: Mason啊 | 来源:发表于2017-10-10 09:46 被阅读846次

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

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

    /**
     * author guofei_wu
     * email guofei_wu@163.com
     */
    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高度实现自适应

        本文链接:https://www.haomeiwen.com/subject/mltvyxtx.html