Android view

Android触摸事件之Down事件

2015-12-11  本文已影响386人  hmz

最近因为答辩,需要整理一下触摸事件。
但是关于Down事件,它是一个触摸动作的起始,它的处理和对其他事件的处理在细节上是有不同的,总觉得逻辑有些凌乱,所以写个demo帮助理解一下。
首先是自定义View,父View继承了LinearLayout,子View继承TextView,简单覆写了两者的触摸方法,加了Log方便观察。

1.子View和父View的onTouchEvent方法相同:
都是返回super.onTouchEvent(event):

此时触摸TextView,Log是长这样的:

此时,LinearLayout的onTouchEvent,onInterceptTouchEvent,以及TextView的onTouchEvent返回的都是false。

2.在1的基础上,
将TextView的onTouchEvent改为true。
返回的Log:

3.在1基础上,将LinearLayout的onTouchEvent改为true,
TextView的onTouchEvent改为false。
返回的Log:

4.在1基础上,
将LinearLayout的onTouchEvent改为true
将TextView的onTouchEvent改为true。
结果和2一致。

5.在1的基础上,
将LinearLayout的dispatchTouchEvent改为只拦截Down事件,且
onTouchEvent事件返回true.
将TextView的onTouchEvent改为true。



结果长这样:

6.在1基础上,
将LinearLayout的dispatchTouchEvent改为只不拦截Down事件,且
onTouchEvent事件返回true.
将TextView的onTouchEvent改为true。

7.在1基础上,
将LinearLayout的dispatchTouchEvent改为只拦截Down事件,且
onTouchEvent事件返回false.
将TextView的onTouchEvent改为true。

8.在1基础上,
将LinearLayout的dispatchTouchEvent改为只不拦截Down事件,且
onTouchEvent事件返回false.
将TextView的onTouchEvent改为true。

综上:

上一篇 下一篇

猜你喜欢

热点阅读