往Android高层进阶,事件分发机制是必须得了解的,郭霖大神就是大神,本文部分内容转载于郭大神博客,但是我本人也是验证过的,尊重原创,尊重作者,郭大神写的博客地址为:http://blog.csdn.net/guolin_blog/article/details/9097463
具体的详情可以参考郭大神博客,我只是总结一下验证时发现的规律
- Button默认可点击,Image View默认不可点击,所以在Image View之设置OnTouch监听后是只能监听ACTION_DOWN的action,是否可点击直接决定了ACTION_DOWN之后的其它action是否可以得到执行;
- ImageView在设置了OnClick监听后,ACTION_DOWN之后的其它action也是可以得到执行的,因为在设置Image View的监听了,会执行View的setOnClickListener方法,并将Clickable设置为true,类似于在布局文件里面给ImageView增加一个android:clickable=”true”的属性,这样ImageView就变成了可点击,CTION_DOWN之后的其它action就可以执行了。
public void setOnClickListener(@Nullable OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}