2017-01-07 53 views
0

我們已經全部完成了,當我們按住按鈕時,我們不確定我們想要點擊或不按住屏幕,同時按住屏幕仍然,我們移動手指,使觸摸事件不會觸發。Android:onTouchListener - 當用戶將視圖移動到視圖外時取消觸摸事件

我想用我的onTouchListener來模仿這種行爲。我有一張卡片清單。每張卡都有一個onTouchListener,在觸摸事件UP時觸發一個意圖。如果用戶在仍然按住屏幕的同時將手指從卡上移開,我想確保意圖未被觸發。

任何想法?

回答

1

使用此代碼

@Override 
public boolean dispatchTouchEvent(MotionEvent event) { 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      break; 
     case MotionEvent.ACTION_UP: 
      if (event.getX() < width && event.getY() < height) { 
       //finger is on the card and fire intent 
      } 
      break; 
    } 
    return true; 
} 
+0

感謝您的答覆,並且它看起來很有希望。至於「寬度」和「高度」,這些內置到onTouchListener中,還是我必須自己定義這些? –

+0

不,你可以通過'view.getWidth()'/'view.getHeight()'@JoshBeckwith –

+1

獲得這些值所以我給了它一個鏡頭,它按預期工作。但是,當您對答案進行更多研究時,我找到了更簡單的解決方案。 實際上有一個MotionEvent.ACTION_OUTSIDE,其功能完全相同。只是想我會讓你知道的。 編輯:我已經從MotionEvent.ACTION_OUTSIDE切換到MotionEvent.ACTION_CANCEL,以便我可以正確地重置我的視圖顏色屬性。他們的工作非常相似。 –

相關問題