Chinaunix首页 | 论坛 | 博客
  • 博客访问: 409050
  • 博文数量: 155
  • 博客积分: 2590
  • 博客等级: 少校
  • 技术积分: 2161
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 09:33
文章分类

全部博文(155)

文章存档

2015年(1)

2014年(2)

2013年(55)

2012年(97)

分类: Web开发

2013-02-28 17:33:09

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.  
阅读(980) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~