dispatchTouchEvent(ev)伪代码:

public boolean dispatchTouchEvent(MotionEvent ev) {boolean consume = false;if (onInterceptTouchEvent(ev)) {onTouchEvent(ev);} else {child.dispatchTouchEvent(ev);}return consume;}

1.外部拦截法

   重写父view的onIntercepTouchEvent():

    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        boolean intercept = false;        int action = ev.getAction();        switch (action) {            case MotionEvent.ACTION_DOWN:                intercept = false;                break;            case MotionEvent.ACTION_MOVE:                if(父view需要处理事件) {                    intercept = true;                } else {                    intercept = false;                }                break;            case MotionEvent.ACTION_UP:                intercept = false;                break;        }        return intercept;    }

 2.内部拦截法

   先重写父view的onInterceptTouchEvent方法。

    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        int action = ev.getAction();        if(action == MotionEvent.ACTION_DOWN) {            return false;        } else {            return true;        }    }

   再重写子view的diapatchTouchEvent()

    @Override    public boolean dispatchTouchEvent(MotionEvent ev) {        ViewParent parent = getParent();        int action = ev.getAction();        switch (action) {            case MotionEvent.ACTION_DOWN:                parent.requestDisallowInterceptTouchEvent(true);                break;            case MotionEvent.ACTION_MOVE:                if(父view需要处理事件) {                    parent.requestDisallowInterceptTouchEvent(false);                }                break;            case MotionEvent.ACTION_UP:                break;        }        return super.dispatchTouchEvent(ev);    }


requestDisallowInterceptTouchEvent()的作用时当参数为true的时候,不再执行父view的onInterceptTouchEvent(),当为false的时候会执行父view的onInterceptTouchEvent()。

更多相关文章

  1. Android 百度地图 对鼠标点击、移动、抬起三个事件的监听
  2. android实现事件监听的2种常用方式
  3. Android中点击事件之KeyListener实现步骤
  4. ListView的长按键事件的处理
  5. 自定义按钮实现android 返回按钮 事件
  6. android里面的点击事件总结
  7. android UI事件
  8. Android 之 事件

随机推荐

  1. 获取Android 设备信息——build.prop
  2. 转:Activity_dialog效果
  3. 五大Android旗舰机型触摸屏横向评测
  4. android中Selector中的相关属性及配置写
  5. Android的两种拍照方法
  6. android Thumbnail攻略
  7. Android OpenGL 编写简单滤镜
  8. Android之TextView属性列表
  9. Android Span的各种使用方法,简单、易懂、
  10. android适配不同分辨率的手机