Android奋斗之路自定义ViewAndroid开发

Touch事件的传递机制笔记

2016-08-26  本文已影响255人  范蓄能

Touch事件传递

事件序列:ACTION_DOWN, ACTION_MOVE, ACTION_UP

Touch事件传递涉及到的方法:

  1. dispatchTouchEvent(分发事件)
  2. onInterceptTouchEvent(拦截事件)
  3. onTouchEvent(处理触摸事件)

Touch事件的传递过程:

Activity与事件传递

  1. Activity获取事件,调用dispatchTouchEvent分发给PhoneWindow
  2. PhoneWindow的DecorView将事件分发给所有的view
  3. 没有任何view消费事件,就会调用Activity的touchEvent

View点击事件的触发和拦截

点击事件的触发:View的onTouchEvent ACTION_UP, performClick
点击事件拦截:onInterceptTouchEvent return true

setOnTouchListener与 onTouchEvent的关系###

在dispatchTouchEvent方法里面会先调用onTouch方法,如果onTouch返回true,直接返回,不会调用到onTouchEvent

Touch事件冲突

有条件的拦截

滚动的处理

View的滚动时是滚动View里面绘制的内容,View本身的位置没有动

上一篇 下一篇

猜你喜欢

热点阅读