Flutter onTap和onDoubleTap同时存在该怎么办我该如何处理才会出现正常的像是html的正常表现呢?
如果同时存在 onTap 和 onDoubleTap,可以考虑使用 GestureDetector 中的 onTapCancel 方法来处理。在 onTapCancel 中,可以设置一个延迟执行的操作,如果在延迟时间内没有再次点击,则执行 onTap 操作,否则执行 onDoubleTap 操作。
具体实现可以参考下面的代码:
GestureDetector(
onTap: () {
// 在这里处理单击事件
},
onDoubleTap: () {
// 在这里处理双击事件
},
onTapCancel: () {
// 设置一个延迟执行的操作
Future.delayed(Duration(milliseconds: 250), () {
// 如果在延迟时间内没有再次点击,则执行 onTap 操作
if (GestureBinding.instance!.lastPointerDownTime == null) {
// 在这里处理单击事件
}
});
},
child: // 子组件
)
在 onTapCancel 中,我们使用了 GestureBinding.instance!.lastPointerDownTime 来判断是否有再次点击。如果 lastPointerDownTime 为 null,则表示在延迟时间内没有再次点击,执行 onTap 操作;否则执行 onDoubleTap 操作
原文地址: https://www.cveoy.top/t/topic/cZAG 著作权归作者所有。请勿转载和采集!