onTouchEvent,onClick,onLongClick的return值和事件响应顺序
其实你只要理解了事件处理机制,知道true和false在其中起着标志事件是否被消耗,如果消耗了就不再传递给其他控件了。
如果没有消耗则还会传递给其他控件,触发其他控件的事件处理函数。使用的时候注意下就是了。
给一个button同时添加这三种事件,onTouchEvent的action_down是最先触发的,
如果返回true,则表示action_down事件已经被消耗,本次点击(长按或点击)不会再响应其他的事件
if (event.getAction() == MotionEvent.ACTION_DOWN) { Log.i("log", "action_down"); return true; }
长按时,还是会先响应action_down,如果返回false,则事件不会被消耗,而是会紧接着响应长按事件。
if (event.getAction() == MotionEvent.ACTION_DOWN) { Log.i("log", "action_down"); return false; }
原文地址:http://www.cnblogs.com/thuai/archive/2011/12/12/2299971.html