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

来源:互联网 发布:网络电视直播客户端 编辑:程序博客网 时间:2024/05/18 13:47

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,这个触摸事件就会“消失”(没有响应)。

原创粉丝点击