2013-01-19 44 views

回答

1

使用MotionEvent參數調用DispatchTouchEvent。 MotionEvent中的方法getAction可以返回ACTION_DOWN,ACTION_MOVE,ACTION_UP或ACTION_CANCEL。然後設置ACTION_DOWN標誌isClick。如果有ACTION_MOVE清除isClick標誌。

switch (ev.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     isClick = true; 
     break; 
    case MotionEvent.ACTION_CANCEL: 
    case MotionEvent.ACTION_UP: 
     if (isClick) { 
      //TODO Click action 
     } 
     break; 
    case MotionEvent.ACTION_MOVE: 
     isClick = false; 
     break; 
    default: 
     break; 
} 
return true; 

}

+1

好像無論多麼短暫我水龍頭,動作移動事件總能獲得的解僱。 – JeffRegan

+0

請檢查我的其他答案,在將isClick設置爲false之前引入移動閾值:http://stackoverflow.com/a/16485989/1373248 – MSquare

+0

昨天我實施了類似的解決方案。你可能想更新這個答案。 – JeffRegan