5

我正在尝试编写一个检测和处理手势的程序。我设法使 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 类。

4

1 回答 1

0

我猜你正在使用GestureDetector.

在它之前发生滚动时不会发生投掷,这就是为什么您onScroll(...)onFling(...). 当onFling(...)用户将手指从屏幕上抬起 ( ACTION_UP) 并产生足够的速度时调用。

于 2013-01-10T10:16:32.827 回答