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

posted @ 2015-08-05 16:49  阿特洛波斯的跳刀  阅读(610)  评论(0编辑  收藏  举报