知识的领域是无限的,我们的学习也是无限期的。这篇文章主要讲述Android 中View仅仅能接收到ACTION_DOWN无法接收ACTION_MOVE和ACTION_UP解决的方法相关的知识,希望能为你提供帮助。
昨天晚上调试了一晚上,在LinearLayout上接收屏幕动作,可是出现了问题, 以下的代码是本人调的代码
< /pre> < pre name="code" class="java"> private int pressedArrow; public class onSetterTouchListener implements OnTouchListener {@Override public boolean onTouch(View v, MotionEvent event) { float pt = event.getX(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: if (pt > last_strpos & & pt < last_endpos) { if (pt - last_strpos < = last_endpos - pt) { cur_strpos = pt; pressedArrow = R.id.start_pos; } else { cur_endpos = pt; pressedArrow = R.id.end_pos; } } else if (pt < = last_strpos) { cur_strpos = pt; pressedArrow = R.id.start_pos; } else if (pt > = last_endpos) { cur_endpos = pt; pressedArrow = R.id.end_pos; } requestLayout(); Log.d(TAG, "down " + cur_strpos + " " + cur_endpos); last_endpos = cur_endpos; last_strpos = cur_strpos; break; case MotionEvent.ACTION_MOVE: Log.d(TAG, "MOVE " + cur_strpos + " " + cur_endpos); if (pressedArrow == R.id.start_pos) { if (pt < last_endpos) cur_strpos = pt; } else if (pressedArrow == R.id.end_pos) { if (pt > last_strpos) cur_endpos = pt; } requestLayout(); last_endpos = cur_endpos; last_strpos = cur_strpos; break; case MotionEvent.ACTION_UP: updateCalibrator((int)cur_strpos); break; } return false; } }
这样一看这个OnTouchListener 的复写应该没什么问题。结尾处return false 代表该事件在此处已经被消费了。但是打开DDMS查看打印日志。当手指滑动到设置了上面Touch监听器的ImageView时,总是打印不出来ACTION_MOVE这里,非常明显是根本没有进去。后来各种查问题都查不到。由于ACTION_DOWN是能够进入的。但是ACTION_MOVE和ACTION_UP却不行,已经不是代码的问题了。
【Android 中View仅仅能接收到ACTION_DOWN无法接收ACTION_MOVE和ACTION_UP解决的方法】
各种查找才发现,要把设置监听的这个View的属性设置成 android:clickable="true" 这样才干够响应ACTION_MOVE和ACTION_UP了。
< ImageView android:id="@+id/track" android:layout_width="match_parent" android:layout_height="20dp" android:clickable="true" android:layout_gravity="center" android:background="#00000000" android:baselineAlignBottom="true" android:visibility="visible" />
在这里记下了。也给别人提供一个方便
推荐阅读
- 自适应网站设计对百度友好的关键(添加applicable-device标签(转))
- *Android 多线程下载 仿下载助手(改进版)
- Android Tangram模型(连淘宝天猫都在用的UI框架模型你一定要懂)
- 如何唯一的标识一台Android设备()
- 转自Android内存机制分析1——了解Android堆和栈
- Mybatis框架中Mapper文件传值参数获取。Mybatis
- [Recompose] Transform Props using Recompose --mapProps
- 图遍历算法(广度优先搜索算法)
- B树实现详细步骤解析