【安卓】viewpager 等与父容器等换动冲突解决方案

方案一:  子 Viewpager  父 SwiperRefreshLayout

//解决SwiperRefresh  Viewpager的冲突
mViewpager.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int touthevent = event.getAction();
        switch (event.getAction()){
            case MotionEvent.ACTION_DOWN:
                preX = event.getX();
            case MotionEvent.ACTION_MOVE:
                mSwipeRefreshlayout.setEnabled(false);
                 //mViewpager.requestDisallowInterceptTouchEvent(true);
                //优化左右滑动更换
                if(Math.abs(event.getX() - preX)> 1 ) {
                    return false;
                } else {
                    preX = event.getX();
                }
                 break;
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL:
                mSwipeRefreshlayout.setEnabled(true);
               // mViewpager.requestDisallowInterceptTouchEvent(false);
                //优化左右滑动更换
                if(Math.abs(event.getX() - preX)> 2 ) {
                    return false;
                } else {
                    preX = event.getX();
                }
                break;
        }
        return false;
    }
});
 方案2:将自定义子View 继承于 View 然后 
@Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
         super.onInterceptTouchEvent(ev));
        return true;
    }

原理:

http://www.cnblogs.com/-OYK/archive/2012/02/06/2340467.html

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0803/1500.html

http://www.tuicool.com/articles/2eqQNv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值