Scrollview嵌套GridView,GridView最后一行展示不全

本文介绍了一种解决ScrollView嵌套GridView时显示不全的问题的方法。通过自定义MyGridView类并调整onMeasure方法来实现GridView的高度自适应。此外,还提供了一个针对特定华为手机型号的解决方案,即在布局文件中添加一个固定高度的View。

Scrollview嵌套GridView情况,若GridView不做处理,GridView 的layout_width="wrap_content"时,只显示一行,滑动范围在GridView内部时,GridView可以滑动,框太小,不好看,写死高度又不满足需求,只能尝试将GridView 的高度自适应。

解决方法:自定义MyGridView ,继承GridView ;

关键是在onMeasure中设置高度的测量

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

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

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

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

        int expandSpec = MeasureSpec.makeMeasureSpec(
                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}



布局文件中引用MyGridView,一般手机大功告成,GridView全部显示,无论在那个区域滑动,外层scrollview都能滑动,但是。。。划重点,部分华为手机(如荣耀畅玩系列),仍然会出现最后一行显示不全的问题,在尝试滑动事件冲突解决,自适应高度各种方法尝试过后,仍然不行,wtf!!!最后灵光一闪,在布局文件中,给MyGridView下面,设置个高度为20dp的View,运行,完美显示!!!果然,写代码还是得看黄历。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值