簡體   English   中英

TouchEvent不再起作用

[英]TouchEvent Doesn't Work anymore

我正拼命地解決此問題:只有ACTION_DOWN事件觸發我的方法。 一整天,它工作正常,但是現在它不再工作了,但我沒有做任何更改。

 public boolean onTouch(View v, MotionEvent event) {

    boolean isReleased = event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL;
    boolean isPressed = event.getAction() == MotionEvent.ACTION_DOWN;
    boolean isMoved = event.getAction() == MotionEvent.ACTION_MOVE;


        if(isPressed){
            if(Gesture_Done){
                reset_It();         
            }
            xPressed = event.getX();
            yPressed = event.getY();
            action_timelist.add(System.currentTimeMillis());
            if(action_timelist.size()>1){
                evaluate_actionlist(true);
            }
        } 

        else if(isReleased){        
            if(!Gesture_Done){
            action_timelist.add(System.currentTimeMillis());
            evaluate_actionlist(false);
            }
            Gesture_Done=false;
        }

        else if(isMoved){
            xMoved = xPressed - event.getX();
            yMoved = yPressed - event.getY();
            checkGesture();
        }
            return false;
    } 

因為沒有顯示錯誤,我不知道如何解決。

嘗試使用下面的編輯代碼。 就在幾個小時前,我遇到了完全相同的問題,這是因為即使我正在消耗觸摸事件,我也會返回false。 如果對事件進行操作,則下面的代碼返回true,否則返回false。

public boolean onTouch(View v, MotionEvent event) {


    boolean isReleased = event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL;
    boolean isPressed = event.getAction() == MotionEvent.ACTION_DOWN;
    boolean isMoved = event.getAction() == MotionEvent.ACTION_MOVE;


        if(isPressed){
            if(Gesture_Done){
                reset_It();         
            }
            xPressed = event.getX();
            yPressed = event.getY();
            action_timelist.add(System.currentTimeMillis());
            if(action_timelist.size()>1){
                evaluate_actionlist(true);
            }
            return true;
        } 

        else if(isReleased){        
            if(!Gesture_Done){
            action_timelist.add(System.currentTimeMillis());
            evaluate_actionlist(false);
            }
            Gesture_Done=false;
            return true;
        }

        else if(isMoved){
            xMoved = xPressed - event.getX();
            yMoved = yPressed - event.getY();
            checkGesture();
            return true;
        }
            return false;
    } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM