加入ScrollView后OnGestureListener无效的解决办法

android中,ViewFlipper+OnGestureListener可以实现左右滑动效果。 
但是在ViewFlipper加上了ScrollView就悲剧了,左右滑动事件无效了…… 

这里其实只需要多实现一个方法就是了,主要是把事件交给系统自己处理 
在OnGestureListener对象中,实现以下方法 

Java代码:  
  1. @Override  
  2. public boolean dispatchTouchEvent(MotionEvent ev){  
  3.     super.dispatchTouchEvent(ev);     
  4.     //productGestureDetector 是 GestureDetector对象  
  5.     return productGestureDetector.onTouchEvent(ev);   
  6. }  


另外,由于有了上下滑动和左右滑动的原因,在上下滑动的时候可能会不小心就触发了左右滑动,所以需要在加点东西 
Java代码:  

    1. private static final int FLING_MIN_DISTANCE = 100;  
    2. private static final int FLING_MIN_VELOCITY = 50;  
    3.   
    4. //....  
    5.   
    6. public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,  
    7.             float velocityY) {  
    8.   
    9.         if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE  
    10.                 && Math.abs(velocityX) > FLING_MIN_VELOCITY) {// move to left  
    11.                     //TODO 左滑动  
    12.   
    13.         } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE  
    14.                 && Math.abs(velocityX) > FLING_MIN_VELOCITY) {  
    15.             //TODO 右滑动  
    16.         } else {  
    17.             return false;  
    18.         }  
    19.         return true;  
    20.     }  
    21.  
posted on 2015-07-01 13:41  左手指月  阅读(391)  评论(0编辑  收藏  举报