【问题标题】:Stop a SimpleOnGestureListener listening until new event occurs - Android onScroll停止一个 SimpleOnGestureListener 监听直到新事件发生 - Android onScroll
【发布时间】:2014-05-23 10:49:15
【问题描述】:

在由于已经发生的触摸事件而调用方法后,如何阻止手势侦听器侦听。

令人困惑,我知道。

分步,

  1. 用户触摸屏幕并滚动一定距离
  2. 事件根据滚动距离/或速度触发;没关系
  3. 如果用户将手指放在屏幕上,它会继续计算
  4. 由于这些计算会产生随机性

在手指被替换到屏幕上之前,如何才能阻止它收听?

GestureListener 是否有停止协议方法之类的,我可以设想 onLift 之类的吗?

我需要解除监听器的连接吗?

感谢任何帮助

【问题讨论】:

    标签: android android-animation android-gesture gesturedetector android-scroll


    【解决方案1】:

    如果您可以控制触发事件的方法和触摸侦听器,请使用布尔值来决定是否需要调用它。

    public boolean onTouch(View v, MotionEvent event) {
      switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            eventShouldBeTriggered = true;
            }
    //Other touch logic
    }
    
    triggerEvent(){
     if(eventShouldBeTriggered){
           eventShouldBeTriggered = false;
    
           //event logic
    
      }
    }
    

    【讨论】:

    • 也许我应该提到。我正在使用 onScroll,我需要停止监听 onScroll 方法。我想在满足条件后立即退出 onScroll 方法 - 并且在用户重新触摸屏幕之前不允许它。感谢您的输入,但我看不出所提供的代码在这种情况下有何帮助
    • 你需要停止滚动还是onScroll方法?这是两个非常不同的东西。
    • 也许我不明白 SimpleOnGestureListener 的 onScroll 方法是如何工作的。当我在满足标准后将手指放在屏幕上时(即我以一定的速度滚动),问题就变得很明显了。即使我的手指没有移动,下一次迭代也发生了。我需要它停止调用 onScroll,直到手指从视图(或屏幕)抬起并重新触摸。
    • @shanehoban 你是如何解决这个问题的?我有同样的情况。
    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 2015-03-03
    • 2017-08-20
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多