使onFling和onScroll单独启动

我正试图编写一个程序来检测和处理手势。 我设法使onFling和onScroll事件起作用(这些事件在一个监听器类和Activity中实现)。 然而,每次我进行滑动(onFling)时,onScroll()函数中的代码也会被执行。 例如:

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
    //do something here, for example change background color to red
    return true;
}

@Override
public boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
    //do something, for example vibrate
    return true;                 
}

在这种情况下,当我滚动设备振动,这没关系。 但是当我刷卡并且onFling被执行时,颜色会变成红色,但它也会震动,我不想要。

有什么办法可以防止这种情况发生,所以当发生滑动时,只有onFling()事件中的代码被执行,而onScroll()只会在真正发生滚动时触发,或者如果不是onScroll(),而是处理简单的手指移动和分开轻扫手势?

编辑:我正在使用GestureDetector类。


我猜你正在使用GestureDetector

在它之前发生的滚动不会发生,这就是为什么您在onScroll(...)之前收到onScroll(...)回调的onFling(...) 。 当用户将手指从屏幕上ACTION_UPACTION_UP )并且已经产生了足够的速度时, onFling(...)被调用。

链接地址: http://www.djcxy.com/p/91297.html

上一篇: make onFling and onScroll fire separately

下一篇: RxJava Observable with last state