本文介绍了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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!