(四)Android事件分发机制 - 总结篇

2017-08-29  本文已影响0人  DevWang

Android事件分发中三个重要方法:

public boolean dispatchTouchEvent(MotionEvent event)

dispatchTouchEvent用来进行事件的分发。如果事件能够传递给当前的View,那么此方法一定会被调用,返回结果表示是否分发当前事件。

public boolean onInterceptTouchEvent(MotionEvent ev)

onInterceptTouchEventViewGroup提供的方法,返回结果表示是否拦截当前事件(默认返回false),如果当前View拦截了某个事件,那么在同一个事件序列当中,此方法不会被再次调用,

public boolean onTouchEvent(MotionEvent event)

onTouchEventdispatchTouchEvent方法中被调用,用来处理点击事件,返回结果表示是否消耗当前事件(默认返回true),如果不消耗,则在同一个事件序列中,当前View无法再次接受到事件。

三个方法的分布情况:

阅读Android事件分发的源代码(6.0版本)


事件分发的具体应用示例:

Android不规则点击区域详解


上一篇 下一篇

猜你喜欢

热点阅读