【发布时间】:2019-04-25 07:13:44
【问题描述】:
我无法访问屏幕上某个对象的点击事件。所以我想用触摸监听器捕捉屏幕上的点击事件。但是当它滚动时,它也被认为是点击。我该如何克服呢?
mMessagesList.setOnTouchListener(new View.OnTouchListener() {
private static final int MAX_CLICK_DURATION = 200;
private long startClickTime;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
startClickTime = Calendar.getInstance().getTimeInMillis();
break;
}
case MotionEvent.ACTION_UP: {
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if (clickDuration < MAX_CLICK_DURATION) {
//click event has occurred
myAction();
}
break;
}
case MotionEvent.ACTION_MOVE:
return false;
case MotionEvent.ACTION_SCROLL:
return false;
case MotionEvent.AXIS_SCROLL:
return false;
case MotionEvent.ACTION_BUTTON_PRESS:
return true;
}
return false;
}
});
【问题讨论】:
标签: android android-layout onclicklistener touch-event