您的位置:首页 > 移动开发 > Android开发

android触摸事件的分发机制、冒泡机制、消费机制

2013-09-22 11:08 781 查看
android的触摸事件包括OnTouchEvent()、onInterceptTouchEvent(MotionEvent ev)以及dispathTouchEvent(MotionEvent ev)。响应这些事件的控件有Activity、View、VewGroup。控件与事件的响应关系,如下图:



1.分发机制:android会从root view(根控件)开始向其子控件分发触摸事件,让其子控件去响应触摸事件,如果子控件不响应,则在OnTouchEvent()中返回false,然后继续分发,直到有一个控件响应这个触摸事件为止(OntouchEvent() 返回true);
2.冒泡机制
当有控件响应了触摸事件后,按照分发的逆方向返回true直到root view(根控件)。到此才算完成了一次完整的触摸响应事件。
3.消费机制
当一个控件在onTouchEvent(MotionEvent ev)中返回true,则表示该控件消费了这个事件,这个事件后面的处理(如ACTION_UP、ACTION_MOVE)都会交给这个控件来处理。如果返回false则表示该控件没有消费该事件,交给父控件的onTouchEvent(MotionEvent ev)来处理,在没有重写的情况下所有的父控件都会返回false,这个触摸事件就会“消失”(没有响应)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息