今天想捕获Gallery的Touch事件做自己想要的处理,但你添加完setOnTouchListener监听完之后eclipse自动会生成一个onTouch方法,就可以在这里面做你想要做的处理了,若你小心地看它会增加return false这行。我在处理完Event.ACTION_MOVE时将其改为return true。当我运行我的程序的时候发现Gallery不能左右滚动了。我就觉得很纳闷了,怎么不能滚动了呢?然后一个朋友提示我应该return false.我改完运行后,果真可以滚动了,并且我在move的时候也实现了我的处理。当时我就在想:return false和return true有何区别呢?
下面就是我在别的文章学习总结来的结论:
1,return false说明你还没消费onTouch事件,在执行完你onTouch里面的代码之后,onTouch事件并没有结束。就是会自动地执行Gallery这个view里onTouch代码(这个为默认).所以这就是为什么没增加你的处理的时候就只自动地调用Gallery的onTouch,若你在onTouch里面增加你的代码并且return false就会执行你的处理和默认的处理。
2,return true说明你已经消费完了onTouch事件,在执行完你的onTouch里面的代码之后,这个onTouch事件就结束了。也就是说不会再调用默认的onTouch事件了。在onTouch里面有很多种的处理比如move,down,up....,若你在move里面return false,那么接着的fling,up等后面的事件也不会处理的。
mGallery.setOnTouchListener(new OnTouchListener(){
//@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
System.out.println("Gallery onTouch");
if(event.getAction()==MotionEvent.ACTION_MOVE){
mDismiss.removeMessages(1);
System.out.println("ACTION_MOVE ");
}else if(event.getAction()==MotionEvent.ACTION_UP){
mDismiss.sendEmptyMessageDelayed(1,10000);
System.out.println("ACTION_UP ");
}
return false;
}
});
分享到:
相关推荐
下面小编就为大家带来一篇Android onTouchEvent事件中onTouch方法返回值(介绍)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
下面小编就为大家带来一篇老生常谈onTouch和onTouchEvent(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
onInterceptTouchEvent和onTouchEvent调用关系详解
LinearLayout分别设置了onTouchListener,onClickListener,onLongClickListener及onTouchEvent回调 1、在屏幕上触摸之后基本的执行流程如下: onTouch,action=0 onTouchEvent,action=0 onTouch,action=2 ...
此Demo是我进行改进的,既可以通过OnTouch对图片进行放大缩小移动,也可以对图片进行OnClick点击,OnLongClick点击。不会出现冲突。
Android onTouch机制源码,重写dispatchTouchEvent和onTouchEvent事件,通过日志观察执行顺序
我们也许会遇到,自定义控件的触屏事件处理,先来了解一下View类中的,onTouch事件和onTouchEvent事件。 1、boolean onTouch(View v, MotionVent event) 触摸事件发送到视图时调用(v:视图,event:触摸事件) 返回...
重写onTouchEvent事件,实现上下左右滑动的小例子。
NULL 博文链接:https://johnnycmj.iteye.com/blog/2234305
相信不少朋友在刚开始...分不清onTouch(),onTouchEvent()和OnClick()之间的关系和先后顺序,所以觉得有必要搞清onTouch事件传递的原理。经过一段时间的琢磨以及相关博客的介绍,这篇文章就给大家详细的分析介绍下。
重写onTouchEvent实现滑屏显示菜单,内有缓存,数据库存储
NULL 博文链接:https://yxwww.iteye.com/blog/1409461
关于onInterceptTouchEvent和onTouchEvent使用demo,很不错的一个demo,可以帮助Android的触摸事件。
NULL 博文链接:https://forlan.iteye.com/blog/2261417
onInterceptTouchEvent与OntouchEvent之间的事件传递机制的具体内涵关系...
大家都知道,我们的activity中有onTouchEvent方法,可以用来实现触摸事件的监听。 activity的触摸事件 @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } ...