【问题标题】:Implement Multi Long press Android实现多长按Android
【发布时间】:2013-08-07 01:36:05
【问题描述】:

我想在 Android 中实现两指长按。 我试图覆盖 onLongPress:

private static final int LONGTIMEOUT = ViewConfiguration.getLongPressTimeout() + 100;

@Override public void onLongPress(final MotionEvent e) {
  Log.i(TAG, "onLongPress");
  switch (e.getActionMasked()) {
    case MotionEvent.ACTION_DOWN:
      Log.i(TAG, "onLongPress:ACTION_DOWN");
      break;
    case MotionEvent.ACTION_POINTER_DOWN:
      Log.i(TAG, "onLongPress:ACTION_POINTER_DOWN");
      if (SystemClock.uptimeMillis() - e.getEventTime() > LONGTIMEOUT)
        Log.i(TAG, "YES YES YES");
      break;
    default:
      break;
  }
}

但当我用两根手指在屏幕上长按时,它永远不会进入 ACTION_POINTER_DOWN。 有人知道如何正确解决/实施它吗?

【问题讨论】:

  • 你使用 GestureDetector 吗?我认为 GestureDetector 不适用于单指。我正在使用它,但我遇到了类似的问题。

标签: android gesture


【解决方案1】:
public abstract void onLongPress (MotionEvent e)

e根据android doc的定义:

开始长按的initial向下运动事件。

这意味着如果您用一根手指开始LongPress 手势,则该手指将是onLongPress 唯一考虑的手指。我的手势不是很好,但我认为你应该先确定它是 2 根手指还是 1 根手指触摸,然后看看它是长按还是正常点击

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2014-02-21
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多