簡體   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