小程序longpress的bug及其解決

個人小程序中,用到一個長按修改的功能,設計是這樣的,短按tap,長按longpress小程序

image

可是,偶爾出現長按無效的狀況。我本身都常常碰到,今天仔細研究,用半天時間反覆尋找,重現,發現問題和內存或別的因素無關,最有多是事件引發的。我發現,這種操做下,長按無效會大機率出現:微信

把列表上拖,使分隔線位於屏幕上沿,手儘可能按分割線,這時,不會出現長按後的彈出菜單。再日後,就是長按無效。但tap依然有效。學習

並且,通常過一段時間,又正常了。設計

學習文檔,發現:blog

長按原來的事件是longtap,問題就不少,和tap總是衝突,才致使又用這個新事件事件

longpress的處理是,若是350毫秒內沒有處理,將觸發tap,不然不觸發tap。內存

加上又是冒泡事件,狀況更加複雜。文檔

對於效果,我比較不滿意。一方面,要手擡起來後,才觸發tap事件,另外長按和tap沒有關聯,和正常習慣也不一致。我看微信自己的處理是,按在列表上,馬上有點中的響應,再過一小會,彈出菜單。get

通過反覆試驗,找到一個接近微信的解決方案it

image

捕獲兩個事件,按下事件直接處理選中,並記錄timestamp,tap事件處理是否彈出菜單。可能比微信稍晚點(要手起來纔出菜單),但也算接近了。

相關文章
相關標籤/搜索