public class MyLinearLayout extends LinearLayout {
public MyLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
/**
* dispatchTouchEvent分发事件返回值:
* true:拦截此分发事件,由分发事件处理该动作,不向下传递
* false:不进行分发,返回由它的来源的onTouchEvent进行处理
* super.dispatchTouchEvent:分发到当前view的onInterceptTouchEvent事件进行处理。
*/
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
/**
* onInterceptTouchEvent事件拦截返回值:
* true:拦截该事件给当前view的onTouchEvent进行处理。
* false:不拦截该事件,当前事件给子view的dispatchTouchEvent进行处理
* super.onInterceptTouchEvent(ev):拦截,分配给onTouchEvent进行处理
*/
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
/**
* onTouchEvent返回值:
* true:接受并消费该事件
* false:事件从当前view向上传递,由父view的onTouchEvent进行接受,如果还返回false,则该事件消失。
* super.onTouchEvent(event):默认处理事件与返回false相同
*/
return super.onTouchEvent(event);
}
}
Android事件分发
最新推荐文章于 2024-06-10 07:43:00 发布