繁体   English   中英

不调用MotionEvent.ACTION_UP

[英]MotionEvent.ACTION_UP is not called

我对OnSwipeImageListener (实现OnTouchListener )有问题。 我在两个活动中使用OnSwipeImageListener
ImageView上的一个活动是OnTouchListenerOnClickListener ,在ImageView上的另一活动仅是OnTouchListener
如果我改变返回诉onTouchEvent(event)trueMotionEvent.ACTION_DOWN那么OnClickListener上的第一个活动不能正常工作,并以这种方式轻扫ImageView第二活动不起作用。 我进行了一些调试,发现从未调用MotionEvent.ACTION_UP

public boolean onTouch(View v, MotionEvent event) {

    switch(event.getAction()) {
    case MotionEvent.ACTION_DOWN:
        dX = event.getX();
        dY = event.getY();
        return v.onTouchEvent(event);
    case MotionEvent.ACTION_UP:
        uX = event.getX();
        uY = event.getY();

        float deltaX = dX - uX;
        float deltaY = dY - uY;

        // horizontal
        if(Math.abs(deltaX) > MIN_DISTANCE) {

            //Left to right
            if(deltaX < 0) {
                this.onLeftToRight();
                return v.onTouchEvent(event);
            } else if (deltaX > 0) {
                this.onRightToLeft();
                return v.onTouchEvent(event);
            }
            else {
                //Swipe too short
                return v.onTouchEvent(event);
            }
        }

        // vertical
        if (Math.abs(deltaY) > MIN_DISTANCE) {

            if(deltaY < 0) {
                this.onTopToBottom();
                return v.onTouchEvent(event);
            } else if (deltaY > 0) {
                this.onBottomToTop();
                return v.onTouchEvent(event);
            }
            else {
                //Swipe too short
                return v.onTouchEvent(event);
            }
        }
    }
    return v.onTouchEvent(event);
}

如果要获取ACTION_UP,则应劫持ACTION_DOWN。

当您仅处理ACTION_DOWN时,不返回“ v.onTouchEvent(event) ”,而返回“ true ”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM