昨天晚上调试了一晚上,在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" />

在这里记下了。也给别人提供一个方便

最新文章

  1. Ext分页实现(前台与后台)
  2. sql server2014不允许保存更改。阻止保存要求重新创建表的更改
  3. 你见过吗?9款超炫的复选框(Checkbox)效果
  4. 实现微信浏览器内打开App Store链接(已被和谐,失效了)
  5. js中用正则表达式 过滤特殊字符 ,校验所有输入域是否含有特殊符号
  6. Codeforces Round #378 (Div. 2) D - Kostya the Sculptor
  7. Mac OS 下安装rar unrar命令
  8. HDU4725 The Shortest Path in Nya Graph SPFA最短路
  9. java实现文件编码监测(转)
  10. Cocos2d-x中父节点scale对子节点的影响
  11. 文《左右c++与java中国的垃圾问题的分析与解决》一bug分析
  12. SQL SERVER BUG--Alwayson日志备份报错
  13. Java-单例模式详解(图文并茂,简单易懂)
  14. Nodejs sublime text 3安装与配置
  15. Centos 7最小化Mongodb部署操作
  16. MVC异步方法
  17. Linux背背背(2)
  18. 删除.svn 脱离svn版本控制器
  19. js-QuickStart-base.js
  20. day21 re模块

热门文章

  1. 【bzoj3252】攻略 贪心+DFS序+线段树
  2. Codeforces Round #345 (Div. 2)——B. Beautiful Paintings(贪心求上升序列个数)
  3. CTSC 1999 家园 【网络流24题】星际转移
  4. LCT(Link-Cut Tree)
  5. 刷题总结——work(ssoj)
  6. 单击gridview中的选择按钮跳转到另一个页面的方法
  7. django:访问本地静态文件的配置
  8. 标准C程序设计七---75
  9. sql server2008 R2安装总结
  10. IDEA重新打jar包时报错MANIFEST.MF already exists in VFS