scrollview嵌套recycleview事件分发遇到的问题

遇到的问题,scrollview 嵌套 两个 recycleview, 当滑动recycleview的时候,recycleview获取了滑动 事件,致使整个部分滑动不流畅,

附图:


然后我就去 研究 事件分发的内容,网上有人说, 自定义  recycleview,  当滑动 一定的距离时,请求父控件去拦截,

getParent().requestDisallowInterceptTouchEvent(false);  传false表示 请求 父控件 拦截,true,表示请求不拦截, 但是  搞了好久 也没有搞定,
 
还有人说,  自定义 父布局  ,在 onTouchevent里  返回ture,   这样是不行 的, 放回true,滑动 事件就被 拦截了,自己就不能滑了,
通过 多方位的研究,终于 被我 搞好了,
 
附上代码,自定义MyScrollView
 
class MyScrollView extends ScrollView {
    public MyScrollView(Context context) {
        super(context);
    }

    public MyScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        int action = ev.getAction();
        float mDownY = 0;
        switch (action)
        {
            case MotionEvent.ACTION_DOWN:
                return false ;
            case MotionEvent.ACTION_MOVE:
                //如果你觉得需要拦截
                float moveY = ev.getY();
                if(Math.abs(moveY - mDownY)>20){
                    return true;
                }
                return true;
            case MotionEvent.ACTION_UP:
                return false ;
        }
        return super.onInterceptTouchEvent(ev);
    }

    public boolean dispatchTouchEvent(MotionEvent ev) {
        return super.dispatchTouchEvent(ev);

    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值