我有一個OnTouchListener
,我正在等待上下行動。然而,當用戶觸摸表面以快速/短暫時,只有向下事件將會觸發,而不是向上事件。我用睡眠線暫時固定它,但我確定這不是理想的解決方案。有沒有人有更好的主意?當用戶速度過快時,觸摸監聽器不會啓動
Button myButton = (Button) findViewById(R.id.button);
myButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
long timeLastTouch = System.currentTimeMillis();
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
long timeTouchNow = System.currentTimeMillis();
if (timeTouchNow - timeLastTouch < 400){
return true;
}
return false;
}
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
long timeNow = System.currentTimeMillis();
if ((timeNow - timeLastTouch) < 400) {
// do stuff
return true;
}
return false;
}
}
return false;
}
}
});
好主意,但我應該在哪裏檢查差異是否更大400毫秒然後才執行代碼? – Dominic
隨着ontouch方法 –
你可以看看我的新代碼,並告訴它有什麼問題嗎? – Dominic