如果使用 onDoubleTap,InkWell 效果会延迟启动;想要在触摸小部件时立即触发

2023-12-20

如果您正在使用onTap & onDoubleTap并排与InkWell,然后单击会延迟(300 毫秒)。我知道双击识别需要时间,而且效果也有延迟,用户交互感觉很差。

我尝试过的:我发现,InkWell一旦调用任何点击事件回调,效果就会启动。如果我使用onTap单独使用时,回调和效果会在第一次触摸时立即启动;如果我使用onTap and onDoubleTap,效果会延迟。

我也尝试过使用onTapDown,但这也会被延迟(可能是错误?)

child: InkWell(
  onTap: () { print("Tap"); },                // gets delayed 300ms
  onDoubleTap: () { print("Double Tap"); }, 
  onTapDown: (x) { print("Tap Down"); }       // gets delayed 300ms
}

所以我的问题是:无论如何,是否可以更改 InkWell (GestureDetector) 以立即启动效果。我认为解决方案可能是改变 onTapDown 行为;如果用户触摸小部件,则应立即调用此函数。


我现在找到了一个简单的solution。我只使用onTap的功能InkWell并写下了onDoubleTap我自己的算法。所以飞溅效果会立即运行,因为原来的onDoubleTap没有被使用。 Tap 函数本身会被延迟(因为使用原始函数也会出现延迟)onDoubleTap功能)。

Pup.dev包我写了一个名为 pub.dev 的包InkWellSplash。除了启动功能之外,您现在还可以调整两次点击之间的最长时间以识别双击。

我很确定这个包会派上用场,并且对多个开发人员很有用

Links

Pub.dev - InklWellSplash https://pub.dev/packages/inkwell_splash

GitHub - InkWellSplash: GitHub https://github.com/ManuelRohrauer/inkwell_splash

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果使用 onDoubleTap,InkWell 效果会延迟启动;想要在触摸小部件时立即触发 的相关文章

随机推荐