解决 setOnItemClickListener,setOnScrollListener与setOnTouchListener事件冲突问题
代码案例如下:
lvXxsdMore.setOnItemClickListener(xxsdMoreListener); //对listView 注册onclick事件
lvXxsdMore.setOnScrollListener(new WScrollListener()); //监听ListView 的上下滑动事件
lvXxsdMore.setOnTouchListener(new OnTouchListener() { //对ListView注册触屏事件
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP){
if(MainInfoActivity.flXxsdYgzHsqj.getVisibility() == View.VISIBLE){
MainInfoActivity.flXxsdYgzHsqj.setVisibility(View.GONE);
}
}
return false;
}
});
如果上述代码中,onTouch返回的是TRUE则,OnItemClickListener 与 OnScrollListener两个事件不会被触发。
Touch事件的执行流程:
ACTION_DOWN -> ACTION_MOVE -> ACTION_UP -> OnClick/OnLongClick
View首先会先响应ACTION_DOWN事件,并返回一个boolean值:
a:返回True,表示该View接受此按下动作,就是说这个点击动作的按下操作被中止,然后就是响应ACTION_UP事件。点击动作的按下操作被ACTION_DOWN接受之后就结束了,所以之后的OnClick/OnLongClick事件就不会响应了。
b:返回false,表示该View不接受此按下动作,响应完之后,按下操作继续往下发,之后是响应ACTION_UP事件,
这里又有一个判断:
如果ACTION_UP事件返回True,表示ACTION_UP接受松开操作,松开操作中止;View会一直处于按下状态,之后View便会响应OnLongClick事件。
如果ACTION_UP事件返回false,表示ACTION_UP不接收松开操作,松开操作继续下发;因为按下与松开操作都没有被中止,所以之后View就会响应OnClick事件
解决 setOnItemClickListener,setOnScrollListener与setOnTouchListener事件冲突问题的更多相关文章
- 重写ListView解决ListView内部ViewPaper滑动事件冲突问题
非常easy 重写ListView 其它类似问题解决ScrollView嵌套ViewPager出现的滑动冲突问题 http://blog.csdn.net/zhangyiacm/article/det ...
- JS - 解决鼠标单击、双击事件冲突问题(原生js实现)
由于鼠标双击时每一次触发双击事件都会引起两次单击事件和一次单击事件,原生的js不提供专门的双击事件. 因为业务原因,双击和单机都绑定了不同的业务,在双击的时候又触发了单机,影响了页面的正常显示 出现问 ...
- Android 解决Gallery下ScrollView滑动事件冲突
在Gallery下,里面内容过长超出屏幕,这时我们可以用ScrollView来滚动,但是这样做了以后,会发现一个问题,Gallery的滑动事件和ScrollView的滑动事件起冲突,这时我们可以自定义 ...
- 解决ScrollView嵌套viewpager滑动事件冲突问题
重写ScrollView 第一种方案能解决viewpager的滑动问题,但是scrollView有时会滑不动 public class VerticalScrollView extends Scrol ...
- ViewPager禁止滑动以及它与内层滑动控件水平方向上事件冲突的解决方法
一.上图 二.场景描写叙述 最近在做项目的时候.遇到一个怪异的需求,描写叙述例如以下: 1.ViewPager中嵌套3个View,当从View1滑动到View2时禁止ViewPager的滑动事件. 2 ...
- Android Listview中Button按钮点击事件冲突解决办法
今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...
- webview滑动事件 与内部html左右滑动事件冲突问题的解决办法
最近在做个混合app , 用html做页面,然后通过webview嵌套在activity中,效果是这样: 开始还是比较顺利,增加了菜单退出按钮,返回键页面回退功能,页面加载显示加载图标(在app端实现 ...
- Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法
Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法 最近在适用Ext JS4开发 ...
- Android ScrollView 嵌套 ListView、 ListView 嵌套ScrollView Scroll事件冲突解决办法
本人菜鸟一名,最近工作了,开始学习Android. 最近在做项目的时候,UX给了个design,大概就是下拉刷新的ListView中嵌套了ScrollView,而且还要在ScrollView中添加动画 ...
随机推荐
- feof()
百度知道 >电脑/网络 >编程语言 >C/C++ feof()这个函数是用来判断指针是否已经到达文件尾部的. 若fp已经指向文件末尾,则feof(fp)函数值为"真&quo ...
- python3-day1(基础总结)
总结比较抽象的难点: 1.二进制运算 60 & 13 =12 60 | 13 =61 60 ^ 13 =49 60<<2 =240 60>>2 =15 ...
- Oracle 方法
1.递归 select zxdept from (select d.id, d.zxdept, d.RANK, d.fatherId from web_dept d start with d.id = ...
- python高级编程之选择好名称:pepe8和命名最佳实践
# # -*- coding: utf-8 -*- # # python:2.x # __author__ = 'Administrator' # my_list=['a','b','c','d'] ...
- 常用Git命令汇总
常用Git命令汇总 跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代 ...
- 曾经很长时间不会写的两个SQL语句(group by,having)
1.统计各部门的平均工资,平均资金(要求同时显示出部门名称,部门编号,部门总人数) SQL)),) 部门平均工资,)),) 部门平均资金 FROM EMP E RIGHT JOIN DEPT D ON ...
- JavaScript ----------------- 原型式继承
思想:借助原型可以基于已有的对象创建新对象,同时还不必因此创建自定义类型.为了达到这个目的,看看下面的实现方式 function object(o){ function F(){ } F.protot ...
- Sql存储过程解密方法
在网上查到这样一个存储过程解密的方法,用起来简单,收藏到这里: )) AS ------------------------sql2000大于40000的----------------- --原作: ...
- javascript运动功能-分享到
<script> //窗体载入,为div控件绑定事件 window.onload = function () { var div1 = document.getElementById('d ...
- C# 执行存储过程
SqlParameter[] paras = BuildParas(id, time, name); bool bRet = ExcuteProcedure(“数据库连接字符串”, "存储过 ...