2011-02-22 49 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

相关问题