美文网首页
scrollview 的滑动与子view的点击冲突

scrollview 的滑动与子view的点击冲突

作者: Rhett_yu | 来源:发表于2018-07-27 23:14 被阅读0次

scrollview的子view,当滑动scrollview时,经常回误入子view的点击事件,因此需要重写scrollview,当滑动一定距离,拦截事件

主要是重写onInterceptTouchEvent

public ClickScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    ViewConfiguration vc = ViewConfiguration.get(context);
    mSlop = vc.getScaledTouchSlop();
}
private float mDownX;  //按下的x坐标
private float mDownY;  //按下的y坐标
private int mSlop;
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
        //Down事件,初始化变量
        case MotionEvent.ACTION_DOWN:
            mDownX = ev.getX();
            mDownY = ev.getY();
            break;
        case MotionEvent.ACTION_MOVE:
 // X方向和Y方向滑动的距离大于mSlopY。拦截点击事件
         if (Math.abs(Math.abs(ev.getX() - mDownX);) > mSlop || Math.abs( Math.abs(ev.getY() - mDownY))> mSlop) {
             return true;
            } 
    }
    return super.onInterceptTouchEvent(ev);
}

相关文章

网友评论

      本文标题:scrollview 的滑动与子view的点击冲突

      本文链接:https://www.haomeiwen.com/subject/dednmftx.html