我在自定义的无状态视图中有一个GestureDetector. 当onTap被触发时,我会显示一个显示一些信息的快餐栏. 当用户快速点击多个按钮时,它会一直显示快餐栏.

source code

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

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

推荐答案

创建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...          
}

Usage:

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

Flutter相关问答推荐

如何使用Firebase Firestore来获取外部集合中的文档子集合中的文档

Box约束强制无限高:SizedBox. Expand()

DART 3.3:为什么扩展类型不起作用?

关闭模式,但再次打开时微件条件相同

为什么在setState之后Ffltter Pageview重置为第0页

为什么我的页面控制器在使用Riverpod时没有更改我的页面视图?

将自定义容器附加到屏幕底部

Flutter http 请求获取 null

为什么我们需要使用ChangeNotifierProvider而不是仅仅使用ChangeNotifier?

无法在 ListView (Flutter) 中限制 Card 的最大宽度

启动画面中的淡入淡出图像

Flutter 应用程序在启动画面冻结(java.lang.RuntimeException:无法启动活动 ComponentInfo)

Pub get 尚未运行

CircleAvatar 在 ListTile 中领先

在flutter web中重新加载页面时保留一些状态数据的有效方法是什么?

Flutter 用户过滤器

http响应在Flutter 中返回307

我已经删除了我的 .android 密钥库,但我没有使用它,如何生成一个新的?

如何从我的Flutter 项目中删除错误?

Flutter audioplayers错误-单击音频按钮时不播放音频