加入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.  

转载于:https://www.cnblogs.com/awkflf11/p/4613042.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值