Android事件传递机制总结

Android中控件的分类

  1. Activity

    dispatchTouchEvent(MotionEvent e)
    onTouchEvent(MotionEvent e)

  2. ViewGroup(View)——可以添加子组件

    dispatchTouchEvent(MotionEvent e)
    onInterceptTouchEvent(MotionEvent e)
    onTouchEvent(MotionEvent e)

  3. TextView(View)——不能添加子组件

    onTouchEvent(MotionEvent e)

事件传递介绍

  1. Activity

    dispatchTouchEvent(MotionEvent e)
    onTouchEvent(MotionEvent e)

  2. ViewGroup(View)——可以添加子组件

    dispatchTouchEvent(MotionEvent e)
    true——自己消费,不向上和向下传递
    false——自己不处理,回传给父组件的onTouchEvent方法处理
    super——调用自己的onInterceptTouchEvent处理,是否拦截事件
    onInterceptTouchEvent(MotionEvent e)
    true:自己消费,调用自己的onTouchEvent()
    false/super:默认往下传递
    onTouchEvent(MotionEvent e)
    true:自己消费
    false/super:回传

  3. TextView(View)——不能添加子组件

    onTouchEvent(MotionEvent e)

     ture——事件消费不回传
     false/super——事件回传
    

Button事件的传递

由onTouchEvent事件进行触摸判断

在松开的状态,去判断是否调用单击事件(是否赋值了单击事件)

原文地址:https://www.cnblogs.com/coderwjq/p/6555296.html