今天花了点时间搞清楚了touch事件的传递顺序,做个笔记,方便以后查询。
android组建层次为:Activity——>Layout——>widget,Activity和widget重写了dispatchTouchEvent、onTouchEvent方法;Layout重写了dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent方法。
3个方法允许touch事件向下传递的条件为:
——dispatchTouchEvent返回值为super.dispatchTouchEvent(event);
——onInterceptTouchEvent、onTouchEvent返回值为false。
则touch事件的传递顺序为:
dispatchTouchEvent(Activity)——>dispatchTouchEvent(Layout)——>onInterceptTouchEvent(Layout)——>dispatchTouchEvent(widget)——>onTouchEvent(widget)——>onTouchEvent(Layout)——>onTouchEvent(Activity)
简而言之,就是dispatchTouchEvent、onInterceptTouchEvent由上向下传递,onTouchEvent由下向上传递。
本文详细解析了Android中触摸事件从Activity到widget的传递流程,包括关键方法的使用和返回值判断。

被折叠的 条评论
为什么被折叠?



