在上一家公司接手了一个项目,由于界面交互的复杂性让我花了很多时间去对Android的事件分发与处理机制做了一个相对比较深的研究。在此记录一下。
事件 | 返回 | 传递or消费 |
---|---|---|
super.dispatchTouchEvent | 当前View的onInterceptTouchEvent | |
dispatchTouchEvent | true | 当前View的dispatchTouchEvent消费,停止传递 |
false | 事件来自Activity,返回Activity消费;事件来自父View,返回父View消费 | |
super.onInterceptTouchEvent | 事件拦截,交给当前View的onTouchEvent消费 | |
onInterceptTouchEvent | true | 同上 |
false | 事件传递,交给子View的dispatchTouchEvent | |
super.onTouchEvent | 事件返回上层View的onTouchEvent处理 | |
onTouchEvent | true | 接收消费 |
false | 同super.onTouchEvent |
另View的监听事件
事件 | 返回 | 传递or消费 |
---|---|---|
onTouch | true | onTouchEvent不再执行 |
false | onTouchEvent可执行 |