我在自定义无状态视图中有一个GestureDetector
。当onTap
触发时,我展示了一个显示一些信息的小吃店。当用户快速点击多次时,它会一直显示小吃店。
GestureDetector(
onTap: () {
Clipboard.setData(new ClipboardData(text: idText));
Scaffold.of(context).showSnackBar(SnackBar
(content: Text('ID copied')));
},
child: Icon(Icons.content_copy,),
}
我希望在再次点击之前禁用onTap
几秒钟。
您可以使用
bool _condition = true;
//...
GestureDetector(
onTap: _condition
? () {
// making it false when onTap() is pressed and after 1 second we'll make it true
setState(() => _condition = false);
Timer(Duration(seconds: 1), () => setState(() => _condition = true));
// your implementation
Clipboard.setData(new ClipboardData(text: idText));
Scaffold.of(context).showSnackBar(SnackBar
(content: Text('ID copied')));
}
: null, // disable onTap if condition is false
child: Icon(Icons.content_copy,),
),