android 根據距離區分 點擊跟滑動事件


      public void onClick(View v) {
                if (isclick)
                    Log.i(TAG, "onclick");
            }
        });
    }

    float distance = 0;
    float start, end;
    boolean isclick = false;
    boolean isFirst = false;

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        super.onTouchEvent(event);
        Log.i(TAG, "onTouchEvent: ");
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                isclick = false;//點擊狀態清空
                start = event.getX();
                break;
            case MotionEvent.ACTION_MOVE:
                end = event.getX();
                distance = end - start;
                if (isFirst==false&&Math.abs(distance) > 10) {//如果滑動距離大於指定數,並判斷是否第一次(解決滑出指定距離又滑入當作是點擊事件bug)
                    isFirst = true;
                }
                if(isFirst){//如果首次確認是滑動狀態責之后滑動都進入此塊代碼
                    Log.i(TAG, "move");
                }

                break;
            case MotionEvent.ACTION_UP:
                if (isFirst) {//是滑動狀態
                    isclick = false;
                } else {//點擊狀態
                    isclick = true;
                }
                isFirst = false;//滑動狀態清空
                break;
        }
        return true;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM