本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。
在按下去的瞬间,Down 状态被触发后 Move 状态也接着被触发,即使手指不移动也会一直触发 Move 状态,Move 连续打印出来的 x、y 值一模一样。
在模拟器上,TouchType 的表现正常,不移动不触发,在真机上只要点击就会触发。
这是鸿蒙的“特性”吗?
解决方案:
在 HarmonyOS 应用开发中,onTouch 事件在真机上持续触发 TouchType.Move 属于正常现象,主要源于以下特性与处理逻辑:
事件机制特性:触控采样率差异:changedTouches 按屏幕刷新率重采样,touches 按器件刷新率上报。真机的触摸传感器通常具有高灵敏度,即使手指轻微抖动(用户可能感知不到),传感器仍会捕捉到坐标变化并触发 Move 事件。
系统级事件处理:HarmonyOS 框架为优化交互体验,会主动上报细微的触控变化。这在需要高精度触控的场景(如绘图应用)中是有益的,但在点击场景下可能造成多次 Move 事件触发。
如果不需要无效的移动事件,可通过代码逻辑过滤掉。
具体代码和其他解决方案讨论,请点击原帖查看:
onTouch事件在点击的时候,一直会触发TouchType的Move状态-华为开发者问答 | 华为开发者联盟 (huawei.com)





