2016-04-01 46 views
0

我使用onTouchEvent方法能夠有一個拖動&拖放事件和一個點擊事件。我測試我的Nexus 7(2012)的結果,它的工作真的很好,但在我的smarphone了一臺華碩Zenfone,這不是我不明白爲什麼,這裏是我的代碼:OnTouchEvent檢測點擊不工作我的華碩Zenfone

button.setOnTouchListener(new View.OnTouchListener() { 
    private float startX, startY; 
    private long startClickTime; 

    @Override 
    public boolean onTouch(final View v, MotionEvent event) { 
     switch (event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       startX = event.getX(); 
       startY = event.getY(); 
       startClickTime = Calendar.getInstance().getTimeInMillis(); 
       break; 

      case MotionEvent.ACTION_MOVE: 
       if (v instanceof Button) { 
        Button button = ((Button) v); 
        if (button.getText().length() == 0) return true; 

        ClipData clipData = ClipData.newPlainText("", ""); 
        DragShadowBuilder shadowBuilder = new DragShadowBuilder(v, false, scale); 
        v.startDrag(clipData, shadowBuilder, v, 0); 

        DataHolder.getInstance().setCurrentText(button.getText().toString()); 
        button.setText(""); 
       } 
       return true; 

      case MotionEvent.ACTION_UP: 
       float endX = event.getX(); 
       float endY = event.getY(); 
       long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime; 

       if (isAClick(startX, endX, startY, endY) && clickDuration < CLICK_DURATION) { 
        v.performClick(); 
       } 
       return true; 
     } 
     return false; 
    } 
}); 

是否有人知道爲什麼我的點擊沒有被觸發?

編輯:截圖

enter image description here

回答

0

我終於成功使我的工作。如果檢測到點擊,我只是在動作移動中添加,如果不是,並且只有它不是,我纔開始拖動。而已。

0

這是我的建議 - 轉到您的手機設置有顯示,你可以打開和關閉設置佈局邊界的選項 - 你可以看到你在哪裏點擊當這個選項打開時。

我承擔可能發生到您的手機沒有什麼責任,但我這是怎麼總是解決這些問題

+0

感謝您的建議,但我已經知道這個選項。界限很棒。正如我所說,沒有問題,知道我只是有一個問題,我的智能手機,我不知道爲什麼,它的工作在模擬器和我的Nexus,所以我無法弄清楚爲什麼... – zed13

+0

我認爲,正在覆蓋可觸摸區域 – 2D3D

+0

我用截圖編輯了我的問題,沒有什麼... – zed13