go语言 网站开发,帮朋友做网站 知乎,十大广告联盟,设计网站推荐语1、基础知识 (1) 所有Touch事件都被封装成了MotionEvent对象#xff0c;包括Touch的位置、时间、历史记录以及第几个手指(多指触摸)等。 (2) 事件类型分为ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL#xff0c;每个事件都… 1、基础知识 (1) 所有Touch事件都被封装成了MotionEvent对象包括Touch的位置、时间、历史记录以及第几个手指(多指触摸)等。 (2) 事件类型分为ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL每个事件都是以ACTION_DOWN开始ACTION_UP结束。 (3) 对事件的处理包括三类分别为传递——dispatchTouchEvent()函数、拦截——onInterceptTouchEvent()函数、消费——onTouchEvent()函数和OnTouchListener 2、传递流程 (1) 事件从Activity.dispatchTouchEvent()开始传递只要没有被停止或拦截从最上层的View(ViewGroup)开始一直往下(子View)传递。子View可以通过onTouchEvent()对事件进行处理。 (2) 事件由父View(ViewGroup)传递给子ViewViewGroup可以通过onInterceptTouchEvent()对事件做拦截停止其往下传递。 (3) 如果事件从上往下传递过程中一直没有被停止且最底层子View没有消费事件事件会反向往上传递这时父View(ViewGroup)可以进行消费如果还是没有被消费的话最后会到Activity的onTouchEvent()函数。 (4) 如果View没有对ACTION_DOWN进行消费之后的其他事件不会传递过来。 (5) OnTouchListener优先于onTouchEvent()对事件进行消费。 上面的消费即表示相应函数返回值为true。 更多请直接阅读PDF英文原文Mastering the Android Touch System示例代码DemoGithub。有什么问题可以这里留言。 附上两张原文中流程图 (1) View不处理事件流程图 view-ignore-touch-event-example (2) View处理事件流程图 view-process-touch-event-example