加入ScrollView后OnGestureListener无效的解决办法
2015-07-01 13:41
405 查看
android中,ViewFlipper+OnGestureListener可以实现左右滑动效果。
但是在ViewFlipper加上了ScrollView就悲剧了,左右滑动事件无效了……
这里其实只需要多实现一个方法就是了,主要是把事件交给系统自己处理
在OnGestureListener对象中,实现以下方法
Java代码:
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
super.dispatchTouchEvent(ev);
//productGestureDetector 是 GestureDetector对象
return productGestureDetector.onTouchEvent(ev);
}
另外,由于有了上下滑动和左右滑动的原因,在上下滑动的时候可能会不小心就触发了左右滑动,所以需要在加点东西
Java代码:
private static final int FLING_MIN_DISTANCE = 100;
private static final int FLING_MIN_VELOCITY = 50;
//....
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE
&& Math.abs(velocityX) > FLING_MIN_VELOCITY) {// move to left
//TODO 左滑动
} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE
&& Math.abs(velocityX) > FLING_MIN_VELOCITY) {
//TODO 右滑动
} else {
return false;
}
return true;
}
但是在ViewFlipper加上了ScrollView就悲剧了,左右滑动事件无效了……
这里其实只需要多实现一个方法就是了,主要是把事件交给系统自己处理
在OnGestureListener对象中,实现以下方法
Java代码:
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
super.dispatchTouchEvent(ev);
//productGestureDetector 是 GestureDetector对象
return productGestureDetector.onTouchEvent(ev);
}
另外,由于有了上下滑动和左右滑动的原因,在上下滑动的时候可能会不小心就触发了左右滑动,所以需要在加点东西
Java代码:
private static final int FLING_MIN_DISTANCE = 100;
private static final int FLING_MIN_VELOCITY = 50;
//....
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE
&& Math.abs(velocityX) > FLING_MIN_VELOCITY) {// move to left
//TODO 左滑动
} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE
&& Math.abs(velocityX) > FLING_MIN_VELOCITY) {
//TODO 右滑动
} else {
return false;
}
return true;
}
相关文章推荐
- Linux设备驱动程序学习(基于2440的GPIO字符设备驱动)
- 8天学通MongoDB——第六天 分片技术
- 索引器的一点点认识
- uva 10465 Homer Simpson
- YTU 2845: 编程题AB-卡片游戏 dfsA
- 零基础学习hadoop
- 解决centos安装 sda必须有一个GPT磁盘标签
- Android 百分比布局库(percent-support-lib) 解析与扩展
- java 检测一个URL地址是否有效
- Akka FSM 源代码分析
- uboot的udp发送
- 8天学通MongoDB——第五天 主从复制
- Android xxx is not translated in zh解决办法
- 多态
- 在python正在使用mysql
- JS 键值对
- 安卓查看当前网络的ip
- 安装php扩展后,执行时找不到扩展 class xxx no found
- 各语言技术列表
- 【Java基础学习笔记】输入输出流之Reader