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

最近有一个需求,就是使用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);
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,274评论 25 709
  • 你是李雪莲吗?我咋觉得你是潘金莲呢。——秦玉河 电影就在潘金莲的故事中,缓缓拉开了序幕,但这一次是圆幕。两个多小时...
    歆悠阅读 1,756评论 0 0
  • 昨天是教师节 我写了我心 昨天听到不好的消息 今天的情绪低落 昨天像做一个梦 今天想起为啥写作 昨天下了一整天的雨...
    爱粉阅读 2,087评论 0 7
  • 憔悴的岁月,渐瘦的思想,忆伤了清风拂面、踏浪而跃的欢颜。 驰骋的画面,略过的场景,梦丢了扬帆起航、波澜壮阔的容貌。...
    林近远阅读 1,684评论 0 2

友情链接更多精彩内容