Android:在一个手势中检测到两个手势

时间:2016-09-02 02:17:32

标签: android

我正在创建一个需要检测点击次数的应用(我为此使用了onSingleTapUp)并保持(我使用onShowPress)。问题是有时候我点击的按钮首先被注册为保留,然后点击一下。有什么方法可以解决这个问题吗?

P.S我不是在寻找长按,所以我没有使用OnLongClickListener

P.S.S我尝试使用OnClickListener进行点击,使用SimpleOnGestureListener进行暂停,但手势未被检测到

相关代码

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ground);
        gl = new GestureDetector(this,new MyGl());
}
 class MyGl extends GestureDetector.SimpleOnGestureListener {
        @Override
        public boolean onDown(MotionEvent event) {
            return true;
        }

        @Override
        public boolean onSingleTapUp(MotionEvent event) {
            Log.i("motion","single");
            return true;
        }
        @Override
        public void onShowPress(MotionEvent e){
            Log.i("motion","long");
        }
    }

 @Override
 public boolean onTouchEvent(MotionEvent e) {
        return gl.onTouchEvent(e);

    }

我希望只看到"单身"记录但是"长"首先记录然后"单个"。在一个中检测到两个手势。

1 个答案:

答案 0 :(得分:0)

类似的声音就像API不打算直接使用(没有约束)onSingleTapUp vs onDown。您应该考虑阅读文档@ https://developer.android.com/reference/android/view/GestureDetector.SimpleOnGestureListener.html#onDown(android.view.MotionEvent),它清楚地说:

  

每次发生的事件都会立即触发

您需要根据特定规格对其进行过滤。阅读文档将解释原因。

也许您应该考虑自己处理TouchEvent并过滤触摸逻辑以寻找您正在寻找的东西。