我在android中有一个视图,我想接受onLongPress动作。
我有一个OnTouch方法可以在屏幕上移动时处理内容。但是当长按而不移动手指时,应该调用OnLongPress方法。
到目前为止,我的努力是让onTouch活动正常进行。但现在,当在视图周围滑动时,会调用onLongPress方法,因为从逻辑上讲,我很长时间都在按屏幕。
我只想让手指在屏幕上静止不动时onLongPress工作,有没有办法实现这个目标?
答案 0 :(得分:0)
你应该取消长按。来自documentation:
public void cancelLongPress ()
取消待处理的长按。你的子类可以 如果您希望在用户按下时出现上下文菜单,请使用此选项 并且在同一个地方举行,但如果他们不想让它出现 按,然后移动到足以导致滚动。
答案 1 :(得分:0)
这样的事情怎么样:
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
downX = event.getX();
downTime = Calendar.getInstance().getTimeInMillis();
return true;
case MotionEvent.ACTION_UP:
upX = event.getX();
upTime = Calendar.getInstance().getTimeInMillis();
float deltaX = downX - upX;
float deltaTime = upTime - downTime;
if((deltaX < UNACCEPTABLE_MOVE_DISTANCE) && (deltaTime > MINIMUM_TIME))
//REPORT LONG PRESS WITH INTERFACE
else
//REPORT SOMETHING ELSE
return true;
default:
return true;
}
}