Android 中View仅仅能接收到ACTION_DOWN无法接收ACTION_MOVE和ACTION_UP解决的方法
2024-09-06 10:28:54
昨天晚上调试了一晚上,在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却不行,已经不是代码的问题了。
各种查找才发现,要把设置监听的这个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" />
在这里记下了。也给别人提供一个方便
最新文章
- Ext分页实现(前台与后台)
- sql server2014不允许保存更改。阻止保存要求重新创建表的更改
- 你见过吗?9款超炫的复选框(Checkbox)效果
- 实现微信浏览器内打开App Store链接(已被和谐,失效了)
- js中用正则表达式 过滤特殊字符 ,校验所有输入域是否含有特殊符号
- Codeforces Round #378 (Div. 2) D - Kostya the Sculptor
- Mac OS 下安装rar unrar命令
- HDU4725 The Shortest Path in Nya Graph SPFA最短路
- java实现文件编码监测(转)
- Cocos2d-x中父节点scale对子节点的影响
- 文《左右c++与java中国的垃圾问题的分析与解决》一bug分析
- SQL SERVER BUG--Alwayson日志备份报错
- Java-单例模式详解(图文并茂,简单易懂)
- Nodejs sublime text 3安装与配置
- Centos 7最小化Mongodb部署操作
- MVC异步方法
- Linux背背背(2)
- 删除.svn 脱离svn版本控制器
- js-QuickStart-base.js
- day21 re模块
热门文章
- 【bzoj3252】攻略 贪心+DFS序+线段树
- Codeforces Round #345 (Div. 2)——B. Beautiful Paintings(贪心求上升序列个数)
- CTSC 1999 家园 【网络流24题】星际转移
- LCT(Link-Cut Tree)
- 刷题总结——work(ssoj)
- 单击gridview中的选择按钮跳转到另一个页面的方法
- django:访问本地静态文件的配置
- 标准C程序设计七---75
- sql server2008 R2安装总结
- IDEA重新打jar包时报错MANIFEST.MF already exists in VFS