关于ListView触摸事件和点击Item事件冲突解决方法
来源:互联网 发布:网络评选投票 编辑:程序博客网 时间:2024/06/05 23:02
前言
原创文章,欢迎转载,请保留出处。有任何错误、疑问或者建议,欢迎指出。我的邮箱:Maxwell_nc@163.com
当我们重写ListView的OnTouchEvent方法时,通常都会switch一下MotionEvent的action,检查符合一定条件是return true,比如重写ListView添加下拉刷新时出现下拉刷新时容易误点Item出发点击事件或者出发长按事件。
例子
先看看下面的代码,我忽略了非关键部分:
@Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN : // ... break; case MotionEvent.ACTION_MOVE : if (...) { // 下拉刷新逻辑... return true;//这里拦截了触摸事件 } break; case MotionEvent.ACTION_UP : // ... break; } return super.onTouchEvent(ev); }
分析
发现OnTouchEvent中条件出发下拉刷新逻辑后直接return true;
而没有执行到super.onTouchEvent(ev);
方法,在super.onTouchEvent(ev);
方法中有可以解决ListView触摸事件和点击Item事件冲突的代码,可以防止下拉刷新时容易误点Item出发点击事件或者出发长按事件。
解决
在return ture;
前调用super.onTouchEvent(ev);
,代码如下:
@Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN : // ... break; case MotionEvent.ACTION_MOVE : if (...) { // 下拉刷新逻辑... super.onTouchEvent(ev);//调用父类方法,防止滑动时触发点击事件 return true;//这里拦截了触摸事件 } break; case MotionEvent.ACTION_UP : // ... break; } return super.onTouchEvent(ev); }
2 0
- 关于ListView触摸事件和点击Item事件冲突解决方法
- 关于ListView触摸事件和点击Item事件冲突解决方法
- ListView触摸事件和Item点击事件冲突解决方法
- ListView中item点事件和item中的控件点击事件冲突的简易解决方法
- Android ListView的Item点击事件和Item里控件点击事件冲突问题解决
- 解决Listview的item和里面控件点击事件冲突
- Listview的item和里面控件点击事件冲突
- listview中的item和button的点击事件的冲突
- ListView item点击事件和里面的控件冲突失效
- listview item中button点击事件和listview onItem点击事件冲突问题解决
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- android listview里包含组件(checkbox)点击事件和Item的点击事件冲突
- android listview里包含组件(checkbox)点击事件和Item的点击事件冲突
- Listview里包含组件(checkbox)点击事件和Item的点击事件冲突
- Android中解决listview的item点击事件和子控件点击事件的冲突
- 关于ListView嵌套ListView,外层Item点击事件的冲突解决
- Struts、hibernate、Spring 官网下载步骤
- C# 反射实例 一
- iOS中Bitcode的介绍及配置
- SQL Server数据库
- Python 标准库——collections(下)
- 关于ListView触摸事件和点击Item事件冲突解决方法
- [速报酱]速报酱团队第一周
- 嵌入式Linux系统内核Kernel(裁减移植)启动调试技术(回顾)
- 深入浅出:MySQL的左连接、右连接、等值连接
- Android应用程序用户界面(十一)时间日期选择对话框
- 使程序暂停的3种方法
- UVA 10474 Where is the Marble?
- windows安装eclipse+MinGW编译c程序
- 【模式匹配】:关于模式匹配的算法实现2