Android事件分发之源码分析,kotlin库

  • Post author:
  • Post category:其他


//这里又调用了FrameLayout中的dispatchTouchEvent方法

return super.dispatchTouchEvent(event);

}

}

由于在 FrameLayout 并没有重写 dispatchTouchEvent(event) 方法,因此我们需要 FrameLayout 的父类也就是 ViewGroup 中该方法的实现,由该方法进行事件的具体分发,这里具体事件分发过程有待研究。





事件处理

Activity 中的事件处理方法:onTouchEvent(),其源码如下:

//事件处理,默认返回false

public boolean onTouchEvent(MotionEvent event) {

if (mWindow.shouldCloseOnTouch(this, event)) {

finish();

return true;

}

//默认返回false

return false;

}

由于对于onTouchEvent()方法来说,事件传递是向父控件传递的,即使返回false,事件也相当于被消费了。


注意

:Activity进行事件分发时,只有return super.dispatchTouchEvent(ev)时,事件才继续向下传递,返回true或false都事件就被消费了,也就是终止了事件的传播。





ViewGroup

ViewGroup中主要三个与事件传递相关的方法:dispatchTouchEvent



版权声明:本文为m0_64319298原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。