Android touch事件

solarsaber 2011-08-16

Android的事件机制是个很重要的东西,搞清楚这个对与开发来说帮助是很大的。下面是我对touch事件机制的一点理解,希望能对大家有所帮助。

在屏幕上发出触屏操作时:

1.首先会触发当前Activity的dispatchTouchEvent(MotionEventev),我们可以重写这个方法来控制这个事件是否继续分发下去,returnture,表示这个事件已经被消化了,不用在继续向下传了,returnfalse则继续往下传。

2.经过了dispatchTouchEvent的筛选,下面是由View来拦截了(前面还会背ViewGroup的onIntercepTouchEvent(MotionEvente)拦截),如果刚才的触屏位置是触在了Activity里的某个View(Button,EditView等等)上面,那该view的onTouchEvent(MotionEventevent)方法将会被调用,同上也可以控制改事件是否继续往下传。

3.如果前面两个方法都返回了false,或者点击的不是某个View而是空白处(Calledwhenatouchscreeneventwasnothandledbyanyoftheviewsunderit.不知道可不可以这么理解),

这样的话这个touch事件将会触发当前Activity的onTouchEvent(MotionEventevent),这个方法还可以返回trueOrfalse,换言之还可以控制事件是否继续往下传,这个地方我就不是很明白了,我觉得貌似已经是最后获取到事件的地方了。不知道是不是还可以控制这个事件是否传到子Activity中去。

相关推荐