首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让onFling和onScroll分别触发

让onFling和onScroll分别触发
EN

Stack Overflow用户
提问于 2013-01-10 18:11:39
回答 1查看 1.4K关注 0票数 5

我正在试着写一个能检测和处理手势的程序。我设法使onFling和onScroll事件工作(这些事件在Activity内部的侦听器类中实现)。但是,每次我刷一下(onFling),onScroll()函数中的代码也会被执行。例如:

代码语言:javascript
复制
@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类。

EN

回答 1

Stack Overflow用户

发布于 2013-01-10 18:16:33

我猜你用的是GestureDetector

滚动发生在它之前是不可能发生的,这就是为什么在onFling(...)之前你会收到一个onScroll(...)回调。当用户将手指从屏幕上抬起(ACTION_UP)并生成足够的速度时,就会调用onFling(...)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14255374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档