首页 文章

Flutter - 在 onLongPress 之后不调用 onTapUp

提问于
浏览
2

我正在尝试创建一个上下文菜单,在长按后显示,同时将手指放在对象上,之后您将选择一个选项(通过拖动手指)并抬起它以启动操作。

使用 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 回答

  • 0

    您可以将另一个手势探测器包裹起来,以便轻拍。

    我不确定当前行为是否是错误,因此您可能希望将其提交给问题跟踪器。

  • 0

    我不知道 PR 是否会通过,但我已经通过 onLongPressUp 上的新手势解决了它。

    这是https://github.com/flutter/flutter/pull/18949

相关问题