android gridview列宽自适应,重写GridView,让GridView高度实现自适应

博主遇到一个需求,需要使GridView的高度自适应内容。在尝试了网上的方法无效后,他发现自己之前写过一篇关于自定义控件的文章。于是,他决定为GridView自定义一个类,重写其测量高度的方法。通过几行代码,成功实现了功能。文章提供了自定义GridView的代码,供读者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值