android GestureDetector监听屏幕事件后 子view 的onTouch 无法触发 100

总共4个类关系依此从上到下ActivityCoursesextendsActivityMyScrollViewextendsHorizontalScrollViewMov... 总共4个类 关系依此从上到下

ActivityCourses extends Activity
MyScrollView extends HorizontalScrollView
MovieLayout extends LinearLayout MovieAdapter extends BaseAdapter
View

现在需要做的就是 通过GestureDetector 实现MyScrollView 的滑动
MovieLayout 的子view onTouch 与 GestureDetector 滑动相冲突
GestureDetector 的onSingleTapUp 也无法获取 MovieLayout下面的子View
请教高人指点。。。。。。。。。。。

// 监听屏幕动作事件
GestureDetector gestureDetector = new GestureDetector(new OnGestureListener() {

private int LEFT_DISTANCE = -100;
private int RIGHT_DISTANCE = 100;

// 用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发
public boolean onDown(MotionEvent e) {
return true;
}

// 用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN,
// 多个ACTION_MOVE, 1个ACTION_UP触发
// e1:第1个ACTION_DOWN MotionEvent
// e2:最后一个ACTION_MOVE MotionEvent
// velocity X:X 轴上的移动速度,像素/秒
// velocity Y:Y 轴上的移动速度,像素/秒
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

float distanceX = e2.getX() - e1.getX();

if (distanceX < LEFT_DISTANCE) {
// left
hsview.nextPage();
} else if (distanceX > RIGHT_DISTANCE) {
// right
hsview.prePage();
}else{
hsview.backPage();
}
return true;
}

// 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发
public void onLongPress(MotionEvent e) {
}

// 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
hsview.scrollBy((int) distanceX, 0);
return true;
}

// 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发
// 注意和onDown()的区别,强调的是没有松开或者拖动的状态
public void onShowPress(MotionEvent e) {
}

// 用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发
public boolean onSingleTapUp(MotionEvent e) {
Log.i("GestureDetector", "********onSingleTapUp********");
return false;
}
});
展开
 我来答
咸天晴d4
2014-04-08 · TA获得超过118个赞
知道答主
回答量:165
采纳率:0%
帮助的人:93.3万
展开全部
onFling中如果你确定了左滑或者右滑你才拦截返回true,否则你应该不拦截,返回false,而不是所有的都返回true。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式