如何解决如何使用 GestureDetector 的单个实例检测多个手势?
我想制作 WhatsApp 语音录音功能。用户点击并按住录制音频,但可以向左滑动取消。但是当我使用 GestureDetector 时它只注册一种手势类型。
例如,如果用户以长按开始,则仅注册 onLongPress 手势。或者,如果用户以水平拖动开始,则仅 onHorizontalDrag:
onLongPressstart: _onPressstart,onLongPressUp: _onPressEnd,onHorizontalDragDown: _onHorizontalDragDown,onHorizontalDragUpdate: _onHorizontalDragUpdate,onHorizontalDragEnd: _onHorizontalDragEnd,
谢谢!
解决方法
尝试使用 onLongPressMoveUpdate
提供的 GestureDetector
回调
这提供了 LongPressMoveUpdateDetails
,它有一个名为 offsetFromOrigin
的属性。
offsetFromOrigin
为您提供一个 Offset
对象,其 dx
值正是您所需要的。
GestureDetector(
child: ...
onLongPressMoveUpdate: (updateDetails) {
if (updateDetails.offsetFromOrigin.dx < 0) {
// Handle horizontal drag towards left
}
}
)
或者,如果您无法使用上述方法,请查看此Medium article
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。