2011-02-22 110 views
1

我在webview中加載圖像,並希望通過放棄手勢在它們之間切換,但在webview情況下實施手勢檢測器所有事件都由檢測器= webview函數作爲縮放和mt不工作。有沒有解決方法?過濾事件並將它們傳遞給ontouch?示例代碼非常精彩。如何在webview中實現甩手勢?

感謝所有。

回答

4

關鍵是檢查gestureDetector.onTouchEvent的返回值,如果gestureDetector沒有處理該事件,則將其傳遞給WebView超類。另外,即使你用onDown方法做了一些事情,也要確保返回「false」,所以超類可以初始化它的內部狀態。如果onFling方法處理事件,則返回「true」,否則返回「false」,以便可以應用默認方法。

public class FlingView extends WebView implements OnGestureListener { 

    private GestureDetector gestureDetector; 

    public FlingView(Context context) { 
     super(context); 
     init(); 
    } 

    public void init() { 
     gestureDetector = new GestureDetector(this.getContext(), this); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent e) { 
     return (
     gestureDetector.onTouchEvent(e) || super.onTouchEvent(e)); 
    } 

    /* OnGestureListener events */ 

    public boolean onDown(MotionEvent e1) { 
     // Initialize event here 
     ... 

     // give the superclass a chance at tap events 
     return false; 
    } 

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
    float velocityY) { 
     if (test) { 
      // handle fling 
      ... 
      return true; 
     } else { 
      // let superclass handle the event 
      return false; 
     } 
    } 
} 
+0

Thx很多!我會嘗試 – Dupla 2011-02-25 22:50:40

相關問題