我正在尝试创建一个上下文菜单,在长按后显示,同时将手指放在对象上,之后您将选择一个选项(通过拖动手指)并抬起它以启动操作。
使用 Flutter,我注意到对我来说有点奇怪。首先,代码:
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
home: new Scaffold(
body: new GestureDetector(
onLongPress: () {
print("onLongPress");
},
onTapUp: (TapUpDetails details) {
print("onTapUp");
},
child: new Center(
child: new FlutterLogo(),
),
),
),
));
}
因此,如果我运行它,在长按图标后,则会调用“onLongPress”的处理程序,但在抬起手指后,“onTapUp”不会被调用。如果我注释掉“onLongPress”(所有 3 行)的处理程序,那么在长按“onTapUp”后调用。我想处理“onTapUp”和“onLongPress”。
任何想法为什么会这样?难道我做错了什么 ?有没有不同的方法来实现这一目标?
我已经尝试过调试它,但我想也许你们可以帮助我(即使调试它很有趣:))。
提前致谢
2 回答
您可以将另一个手势探测器包裹起来,以便轻拍。
我不确定当前行为是否是错误,因此您可能希望将其提交给问题跟踪器。
我不知道 PR 是否会通过,但我已经通过 onLongPressUp 上的新手势解决了它。
这是https://github.com/flutter/flutter/pull/18949