首页 > 解决方案 > 颤振检测三连击

问题描述

我希望能够在 Flutter 小部件中检测到三次轻击(甚至更多),尽管 GestureDetector 仅内置了对双击的检测。

对我来说,检测小部件上的三次点击最简单的方法是什么?

(我想不断点击屏幕的一部分来解锁一些开发者选项)

标签: flutter

解决方案


这个有点懒,其实没那么难

// init
int lastTap = DateTime.now().millisecondsSinceEpoch;
int consecutiveTaps = 0;

GestureDetector(
        onTap: () {
          int now = DateTime.now().millisecondsSinceEpoch;
          if (now - lastTap < 1000) {
            print("Consecutive tap");
            consecutiveTaps ++;
            print("taps = " + consecutiveTaps.toString());
            if (consecutiveTaps > 4){
              // Do something
            }
          } else {
            consecutiveTaps = 0;
          }
          lastTap = now;
        },
        child: ...
)

推荐阅读