要想理解Android事件分发机制,请先参考下面两篇文章,本文是以这两篇文章为基础,继续深入浅出进行总结。

Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

http://blog.csdn.net/guolin_blog/article/details/9097463

Android事件分发机制完全解析,带你从源码的角度彻底理解(下)

http://blog.csdn.net/guolin_blog/article/details/9153747


1.看一下布局界面分析图:



2.理清概念和继承关系:



触摸事件的处理原则:

【注意区别】:

1.触摸事件由最外层控件一层一层往内部传递进行处理

2.每一层都会依次调用dispatchTouchEvent进行处理【里面会判断是否需要拦截,假如不需要拦截,则往内层控件分发传递,假如需要拦截处理,则优先调用onTouch方法,假如没有onTouch方法处理,再调用onTouchEvent处理【这些方法的调用会优先从自己的方法里面找,没有的话,再去父类找】】

触摸事件传递流程图:



最终处理流程:


原则总结:

1.View/ViewGroup等父类负责分发处理【dispatchTouchEvent】,其中ViewGroup继承了View,但重写了此方法

2.每个控件负责重写拦截方法【onInterceptTouchEvent】和处理方法【onTouch/onClick

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. android 属性android:visibility及 view的setVisibility方法值的
  5. [Android]实现静默安装APK的两种方法
  6. Android(安卓)Emulator 模拟器使用方法
  7. ANDROID开机动画bootanimation.zip的详细制作方法
  8. 【Android休眠】之Android对PowerKey事件的处理(2)EventHub
  9. Android中外部程序调用方法总结

随机推荐

  1. Timer和TimerTask的知识点
  2. Android获取sdcard信息
  3. Android常用颜色表
  4. Android软键盘的弹出与隐藏
  5. android 监听网络连接状态的改变
  6. build.gradle(module)
  7. Android实现简易计算器(页面跳转和数据传
  8. 【北亚服务器数据恢复】raid5硬盘掉线,阵
  9. 初学者怎么把姿势画好?动漫人物少女姿势画
  10. Python多线程编程