android-禁用双击或检测第二个点击位置

android-禁用双击或检测第二个点击位置,第1张

概述我有一个带有GestureDetector和扩展的SimpleOnGestureListener的GLSurfaceView.我需要能够通过快速点击在表面视图上选择多个项目.由于onSingleTapConfirmed太慢,因此我覆盖了onSingleTapUp以快速检测到触摸.现在的问题是,如果表面视图上的两个项目彼此靠近,并且用户快速点击一个项

我有一个带有GestureDetector和扩展的SimpleOnGestureListener的GLSurfaceVIEw.我需要能够通过快速点击在表面视图上选择多个项目.由于onSingleTapConfirmed太慢,因此我覆盖了onSingleTapUp以快速检测到触摸.现在的问题是,如果表面视图上的两个项目彼此靠近,并且用户快速点击一个项目,然后又快速点击另一个项目,则第一个项目将调用onSingleTapUp方法,而第二个项目则不会被调用.第二个方法调用onDoubleTap方法,无论该方法是否被覆盖.

为了解决这个问题,我尝试不简单地重写onDoubleTap方法,并且还尝试在重写的onDoubleTap中不执行任何 *** 作并返回false.都不能解决问题.在第二次点击时仍不会调用onSingleTapUp方法.

我决定尝试在onDoubleTap方法中检测第二次点击,然后从中选择项目.这样做的问题是从onDoubleTap返回的运动事件包含“双击的第一次轻击的运动事件”. –http://developer.android.com/reference/android/view/GestureDetector.OnDoubleTapListener.html

有什么方法可以禁用双击,更改双击时间以使其永远不会触发,将双击半径更改为很小的值或在onDoubleTap方法中获得第一个点击位置?

这是我的SimpleOnGestureListener:

public class VIEwGestureListener extends    GestureDetector.SimpleOnGestureListener {    private VIEWrenderer renderer;    private GLSurfaceVIEw surfaceVIEw;    public VIEwGestureListener(GLSurfaceVIEw surfaceVIEw,        VIEWrenderer renderer) {        this.renderer = renderer;        this.surfaceVIEw = surfaceVIEw;    }    // Pan    @OverrIDe    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,        float distanceY) {        renderer.pan(distanceX, distanceY);        surfaceVIEw.requestRender();        return true;    }    // Double touch and release    @OverrIDe    public boolean onDoubleTap(MotionEvent e) {        // Note: e.getX() doesn't return the second tap's location!        renderer.singletouch(e.getX(), e.getY());        surfaceVIEw.requestRender();        return true;    }    @OverrIDe    public boolean onSingleTapUp(MotionEvent e) {        renderer.singletouch(e.getX(), e.getY());        surfaceVIEw.requestRender();        return true;    }}

谢谢,
马特

解决方法:

我可能来不及帮助这篇文章的作者,但我也遇到了同样的问题,因此这是其他对此感到疑惑的人的答案.

回答:

您需要覆盖以下方法,它将为您提供第二次点击的向下,移动和向上事件:

onDoubleTapEvent(MotionEvent e)

如果要第二次点击向上运动,则:

onDoubleTapEvent(MotionEvent e) {         if(e.getAction() != MotionEvent.ACTION_UP) {                return false;  // Don't do anything for other actions         }         // YOUR CODE HERE         return true;}

祝好运!
/卡洛斯

总结

以上是内存溢出为你收集整理的android-禁用双击或检测第二个点击位置全部内容,希望文章能够帮你解决android-禁用双击或检测第二个点击位置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1073865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存