分别制作onFling和onScroll

时间:2013-01-10 10:11:39

标签: android

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

1 个答案:

答案 0 :(得分:0)

我猜你正在使用GestureDetector

如果在它之前发生滚动,则无法进行投放,这就是您在onScroll(...)之前收到onFling(...)回调的原因。当用户从屏幕上抬起手指(onFling(...))并且已生成足够的速度时,将调用ACTION_UP