我的小程序中,用到一个长按修改的功能,设计是这样的,短按tap,长按longpress

但是,偶尔出现长按无效的情况。我自己都经常碰到,今天仔细研究,用半天时间反复寻找,重现,发现问题和内存或别的因素无关,最有可能是事件引起的。我发现,这种操作下,长按无效会大概率出现:

把列表上拖,使分隔线位于屏幕上沿,手尽量按分割线,这时,不会出现长按后的弹出菜单。再往后,就是长按无效。但tap依然有效。

而且,一般过一段时间,又正常了。

学习文档,发现:

长按原来的事件是longtap,问题就很多,和tap老是冲突,才导致又用这个新事件

longpress的处理是,如果350毫秒内没有处理,将触发tap,否则不触发tap。

加上又是冒泡事件,情况更加复杂。

对于效果,我比较不满意。一方面,要手抬起来后,才触发tap事件,另外长按和tap没有关联,和正常习惯也不一致。我看微信本身的处理是,按在列表上,立刻有点中的响应,再过一小会,弹出菜单。

经过反复试验,找到一个接近微信的解决方案

捕获两个事件,按下事件直接处理选中,并记录timestamp,tap事件处理是否弹出菜单。可能比微信稍晚点(要手起来才出菜单),但也算接近了。

最新文章

  1. redis命令总结
  2. iOS 使用AFNetworking遇到错误 Request failed: unacceptable content-type: text/html
  3. thinkphp调用phpqrcode.php生成二维码
  4. CF 66D. Petya and His Friends
  5. Laravel 5.3 中文文档翻译完成
  6. AJAX笔记
  7. lines---hdu5124(离散化+数组模拟)
  8. 【Linux安全】文件或目录权限设置
  9. Android Studio的使用(十)--读取assets、Raw文件夹下文件,以及menu、drawable文件夹
  10. 201521123024《Java程序设计》第3周学习总结
  11. VirtualBox 磁盘容量调整
  12. 打造Linux回收站
  13. [USACO 09FEB]Fair Shuttle
  14. C++_友元函数
  15. GetMemory那一题的理解
  16. Spring MVC 使用介绍(十四)文件上传下载
  17. c语言中字符串数组初始化的一点总结&& c++访问控制的三种方式
  18. 学习笔记 requests + BeautifulSoup
  19. Dubbo注册Zookepper服务的虚拟IP
  20. ES6——TDZ(暂时性死区)

热门文章

  1. 怎样将一个Long类型的数据转换成字节数组
  2. Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑
  3. 关于thinkphp3自动完成的笔记
  4. oracle获取某个月份的最后一天
  5. 实现手写数字识别(数据集50000张图片)比较3种算法神经网络、灰度平均值、SVM各自的准确率—Jason niu
  6. c++ stod很慢
  7. JQuery POST请求封装
  8. 2018-7-17-随笔-params和ref、out用法、事件访问器
  9. 3.27模拟赛 sutoringu(后缀数组)
  10. 1006 Tick and Tick