Android 事件的分发

ACTION_DOWN的事件响应流程

dispatchTouchEvent()

  1. return true; —–> stop

  2. return false; ——>
    if(View == Activity) {
    onTouchEvent();
    } else {
    super.onTouchEvent();
    }

  3. return super.dispatchTouchTouchEvent(e);
    —–> this.onInterceptTouchEvent();

onInterceptTouchEvent()

  1. return true; —> this.onTouchEvent();

  2. return false; —> child.dispatchTouchEvent();

  3. return super.onInterceptTouchEvent();
    —> this.onTouchEvent();

onTouchEvent()

  1. return true; –> 接受并消费该事件

  2. return false; –> super.onTouchEvent();//向上传递,并且都是由上层的onTouchEvnent()接受

  3. return super.onTouchEvent();//和return false一样

注: ACTION_MOVE & ACTION_UP的事件响应流程是当ACTION_DOWN中的onTouchEvent()在哪个层次视图上面return true,就只将事件传递到该层上面。

猜你喜欢

转载自blog.csdn.net/feirose/article/details/56682462
今日推荐