【问题标题】:Which is better approach for OnClick Implementation?哪种方法更适合 OnClick 实施?
【发布时间】:2012-11-09 09:32:19
【问题描述】:

对于onClick函数的实现,哪种方法更好?

  1. 保存触摸开始/触摸坐标并处理此值以获得接近度?比如,如果起点和上点彼此靠近,让点击动作开始。
  2. 保存触摸开始/触摸时间差并处理此值?比如,如果 touch 开始时间和 up 时间差小于一个值,让点击动作开始。

为什么?

【问题讨论】:

  • 只是好奇。为什么不使用内置?
  • 持续时间和位移。因为您可能会将意外滑动或长按视为点击。
  • 哪种更好的方法的答案是我们的好奇心。我们必须说一点头脑风暴:)
  • @Singularity,我们将用静态值检查启动/启动时间差或启动/启动点坐标替换。问题是哪种方法更好?

标签: android onclick touch-event ontouchlistener onclicklistener


【解决方案1】:

取决于您要支持多少种触摸事件:

  1. 在向上:点击

  2. 在向上:不动太多 -> 点击,移动 -> 滑动

  3. on Up : 短时间 -> 点击,长时间 -> 长按 已触发,忽略。

  4. 触发了向上和长按:不动太多 -> 忽略,移动 -> 拖放

当您确实需要更多种类的触摸事件时,您会详细了解持续时间和位移。最佳方法取决于场景。因此,如果您的触摸屏没有滑动或长按或拖放的概念,您可能只需在每个向上事件上触发一次点击,这是最简单的场景。

【讨论】:

    【解决方案2】:

    如果您绝对必须实现自己的,我会使用选项 2。

     if(motionEvent==MotionEvent.ACTION_UP){
        long duration = motionEvent.getDownTime() - .getEventTime();
        if(duration < THRESHOULD)
             click();
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 2016-04-27
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 2013-07-24
      • 2011-04-28
      相关资源
      最近更新 更多