listView嵌套GridView后gridview显示高度显示问题

当ListView的每个Item包含一个GridView时,GridView可能只会显示一行。为了解决这个问题,需要自定义GridView并重写onMeasure()方法,限制高度为Integer.MAX_VALUE的一半。在XML布局中,GridView的高度可以设置为wrap_content或match_parent,不需要特别设置为wrap_content来解决显示问题。
摘要由CSDN通过智能技术生成
ListView嵌套GridView,即ListView的每个Item中都包含一个GridView。直接嵌套后GridView会出现只显示一行的问题。
由于ListView和GridView都是可滑动的控件,所以需要自定义GridView,重写其onMeasure()方法。
import android.widget.GridView;  
 /** 
 * 
 * @author jc
 * 
 */ 
public class MyGridView extends GridView {  
    public MyGridView(android.content.Context context,  
            android.util.AttributeSet attrs) {  
        super(context, attrs);  
    }  
  
    /** 
     * 设置不滚动 
     */  
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,  
                MeasureSpec.AT_MOST);  
        super.onMeasure(widthMeasureSpec, expandSpec);  
  
    }  
  
} 
看到其他解决方案,提到重写onMeasure()方法后,还需要在XML设置GridView的高度为wrap_content,实际上不需要,设置为wrap_content或者match_parent均可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值