使用OnTouchListener()的一个坑,监听不到MotionEvent.ACTION_UP
2017-03-24 20:04
281 查看
今天在使用OnTouchListener()的时候遇到了一个坑,下面先贴出代码,再分析这个坑。
activity_main_image.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { continueThread = true; progressRun(); thread.start(); Log.e("Debug", "7"); } if (event.getAction() == MotionEvent.ACTION_UP) { Log.e("Debug", "8"); continueThread = false; } *强调内容***return false**; } });1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
下面分析下返回false和true的区别:
setOnTouchListener 单独使用的时候返回值需要设置为true,这样才能保证MotionEvent.ACTION_UP的时候能获取相应的监听,而非一次监听(即每次只有一个按下的事件能被监听到)。
当setOnTouchListener 和 setOnClickListener 同时使用时,onTouch 的返回值要设为 false,这样既可以保证按下,然后再抬起的时候可以被监听,并且点击事件也会被监听。
相关文章推荐
- 使用OnTouchListener()的一个坑,监听不到MotionEvent.ACTION_UP
- SurfaceView监听不到MotionEvent.ACTION_MOVE和MotionEvent.ACTION_UP事件的解决办法
- OnTouchListener()监听不到MotionEvent.ACTION_UP?
- android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- Androin学习笔记五十六: android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- Android onTouch 斜滑或者MotionEvent.ACTION_UP 不反应
- Android onTouchEvent的MotionEvent.ACTION_UP不响应
- android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- MotionEvent.ACTION_UP无法被响应
- 关于MotionEvent.ACTION_UP无法被响应的问题
- android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- Android MotionEvent.ACTION_UP和ACTION_CANCEL的区别
- android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- Android 自定义View可以监听ACTION_DOWN却监听不到ACTION_MOVE和ACTION_UP
- android多点触控统一的原理(使用 event.getAction()&MotionEvent.ACTION_MASK的原因)
- android多点触控统一的原理(使用event.getAction()&MotionEvent.ACTION_MASK的原因)
- (转载) 关于MotionEvent.ACTION_UP无法被响应的问题
- Android 自定义view之后只能监听到MotionEvent.ACTION_DOWN的解决办法
- 马士兵 J2SE 第11章 GUI编程 事件模型ACTIONEVENT TEXTFIELD事件监听 内部类 PAINT adapter和repaint window事件 键盘事件
- mvc中使用一个action对多个不同名字段做remote验证