为了账号安全,请及时绑定邮箱和手机立即绑定

类似下拉控件嵌套viewpager在嵌套listview下滑就触发刷新的问题

标签:
Android

第一次写博客,不知道怎么描述,那就直接说干货吧。就是在做项目时,通常遇到的情况是类似于viewpager嵌套listview,listview需要有下拉功能,于是就会在listview外嵌套一个下拉刷新控件。这样通常是没有问题的,但是如果说在某些项目中需要在viewpager外加下拉控件的话(ps:接口包含的数据多的情况),这是我们会发现不论什么时候只要是下滑就会触发下拉控件的刷新功能。这是因为下拉控件根据viewpager是否已到达顶部,如果到达顶部就会触发,然而数据都是存在listview中。

如何解决问题呢?我想到的方法是,重写listview重写dispatchTouchEvent方法。在里面判断数据是否到达顶部,如果到没有达顶部就反拦截到达就不反拦截。代码如下:

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
//        return true;
        if(isListViewReachTopEdge(this)) {
            requestDisallowInterceptTouchEvent(false);
        }else {
            requestDisallowInterceptTouchEvent(true);
        }
        return super.dispatchTouchEvent(ev);
    }
    //是否到顶
    public boolean isListViewReachTopEdge(final ListView listView) {
        boolean result=false;
        if(listView.getFirstVisiblePosition()==0){
            final View topChildView = listView.getChildAt(0);
            result=topChildView.getTop()==0;
        }
        return result ;
    }

原文链接:http://www.apkbus.com/blog-874691-63163.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消