本文介绍了Flutter:如何在手势检测器中暂时禁用onTap?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

在自定义无状态视图中,我有一个 GestureDetector 。触发 onTap
我显示了一个显示一些信息的小吃店。
当用户快速单击多次时,它将永远显示小吃店。

I have a GestureDetector in a custom stateless view.when onTap triggered I show a snack bar that displays some info.When the user makes multiple clicks fast it keeps displaying the snack bar forever.

GestureDetector(
  onTap: () {
    Clipboard.setData(new ClipboardData(text: idText));
    Scaffold.of(context).showSnackBar(SnackBar
      (content: Text('ID copied')));
  },
  child: Icon(Icons.content_copy,),
}

我想禁用 onTap 几秒钟,然后才能再次单击它。

I want to disable the onTap for seconds before it can be clicked again.

推荐答案

创建 bool 标志并定义方法:

bool _enabled = true;

void _onTap () {

  // Disable GestureDetector's 'onTap' property.
  setState(() => _enabled = false);

  // Enable it after 1s.
  Timer(Duration(seconds: 1), () => setState(() => _enabled = true));

  // Rest of your code.
}

用法:

GestureDetector(
  onTap: _enabled ? _onTap: null,
  child: Icon(Icons.content_copy),
)

这篇关于Flutter:如何在手势检测器中暂时禁用onTap?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-08 19:59