当遇到“点击”或“触摸”等操作时,我在尝试使元素以不同方式响应时遇到问题。当我单击元素(是一个简单的监听器,不值得粘贴代码)时,它会完美地执行操作,但完全忽略了触摸操作。那样我可以将元素关联起来区分这两个事件吗?
我是否应该将监听器应用于执行操作的视图的子级?
感谢。
修改
解决!
在调用之前添加了对触摸事件使用的检查。
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
super.dispatchTouchEvent(event);
if (this.onTouchEvent(event))
return this.onTouchEvent(event);
else
return false;
}
答案 0 :(得分:0)
您可以参考this主题寻求帮助,或直接使用answer。 祝你好运=)
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
// record the start time, start the timer
mEventStartTime = ev.getEventTime();
mHandler.postDelayed(mTask, LONG_PRESS_TIME);
} else if (ev.getAction() == MotionEvent.ACTION_UP) {
// record the end time, dont show if not long enough
mEventEndTime = ev.getEventTime();
if (mEventEndTime - mEventStartTime < LONG_PRESS_TIME) {
mHandler.removeCallbacks(mTask);
}
} else {
// moving, panning, etc .. up to you whether you want to
// count this as a long press - reset timing to start from now
mEventStartTime = ev.getEventTime();
mHandler.removeCallbacks(mTask);
mHandler.postDelayed(mTask, LONG_PRESS_TIME);
}
return super.onTouchEvent(ev);
}