检查在 Flutter 中按下按钮多长时间

Check how long was a button pressed in Flutter

实际上我目前正在使用 Division 来处理按钮的手势。但我仍然在寻找一种方法来完成它,无论有没有分裂。我希望长按按钮在 1000 毫秒而不是 500 毫秒后启动。

我已经在 SO 和其他网站上进行了搜索,但似乎仍然找不到这个确切问题的解决方案。

Division 就是这样运作的。我尝试使用 while 和 Future.delayed 但似乎无法使其正常工作。但是如果它不在 Division 的 Gesture() 中就完全没问题。因为我只是想让它正常工作,不管它是否使用除法。

Gestures()
          ..isTap((isTapped) => setState(() => pressed = isTapped))
          ..onLongPress(() { print("long pressed"); })

提前致谢。

您可以从此代码开始使用

 GestureDetector(
    onLongPress: () {
      setState(() {
        _lights = true;
      });
    },
 );

你可以这样做的一种方法是使用 dart:async

中的 Timer
class _MyWidgetState extends State<MyWidget> {
  
  Timer timer;
  
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTapDown: (_) {
        timer = Timer(Duration(milliseconds: 1000), onLongerPress);
      },
      onTapUp: (_){
        timer.cancel();
      },
      child: Container(child: Center(child: Text('Click here')), width: 200, height: 50, color: Colors.green),
    );
  }
  
  void onLongerPress() {
    print('onLongerPress called');
  }
  
}