ScrollView中嵌套ListView无法滚动问题

在Android开发中,遇到ScrollView嵌套ListView并包含轮播图时,发现只有ListView能滚动。解决方法是创建一个自定义的NoScrollListView,通过重写onMeasure方法禁用其滚动,从而在XML中使用此自定义控件可使整个ScrollView正常工作。

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

今天在写小demo时就发现在ScrollView里同时嵌套了ListView布局和一个轮播图之后就只有ListView在滚动而轮播不会被覆盖,就找了很多博客,发现都是因为ListView和ScrollView的滚动存在冲突,只需要禁用了ListView的滚动就可以解决,然后尝试了很多的方法后都不行,最后发现自定义ListView控件然后在XML文件中直接引用自定义ListView控件就可以了,上代码:

//因为ScrollView和ListView之间存在滚动冲突,需要取消ListView的滚动来使ScrollView里的所有控件可以正常滚动
//自定义控件用来取消List View的滚动
public class NoScrollListview extends ListView {

    public NoScrollListview(Context context, 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);

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值