- 最近又学一招:安卓应用频道,上的文章做个笔记防止忘了。
事件流向。
三层流向。Activity,GroupView,View。 事件初始都是由
Activity ->GroupView->View。注意几个方法。
Activity
dispathTouchEvent(), onTouchEvent();
GroupView
dispathTouchEvent(),onInterceptTouchEvent, onTouchEvent();
View
dispathTouchEvent(), onTouchEvent();
- dispathTouchEvent 事件调度分发,onInterceptTouchEvent:事件拦截。onTouchEvent,这个就是我们最为熟悉的触摸事件了。
- 以上三层只有GroupView,有onInterceptTouchEvent方法。所以只有GroupView以及他的子类会拦截事件。
- dispathTouchEvent 三个返回值。 true,false,super.xxxx();。返回True的时候事件被消耗,不会再往上层分发了。返回false,事件被回传给父控件的onTouchEvent进行处理。(Activit 的dispathTouchEvent 方法除外,activity的dispathTouchEvent ,无论返回什么都会把事件往下传)。对于ViewGroup及其子类,返回super.xxx(),事件会被传递给onInterceptTouchEvent方法。
- onInterceptTouchEvent 两个返回值,true,false。返回true,的时候事件被拦截不会再往上层传递,事件会传递给当前层的onTouchEvent方法。返回false,事件传递给上层的dispathTouchEvent 方法。
- onTouchEvent View的一些小知识中的说明。