【发布时间】:2019-10-19 00:42:34
【问题描述】:
我有一个需要启动 url 的 GestureDetector。但如果手势获得多次点击,则启动会被多次调用。
在当前代码中,我试图使用状态 _isButtonTapped 来控制点击。但是 .whenComplete 在启动之前以某种方式调用?
_isButtonTapped = false
Widget _buildButton(String key, Text title, String url) {
_onTapped() async {
if (await canLaunch(url)) {
launch(url).whenComplete(
() => setState(() {
_isButtonTapped = false;
}),
);
}
}
return GestureDetector(
onTap: () {
_isButtonTapped ? null : _onTapped();
setState(() {
_isButtonTapped = true;
});
},
child: Container(
child: Padding(
padding: EdgeInsets.all(6.0),
child: Center(child: title),
),
),
);
}
【问题讨论】:
-
添加
onDoubleTap: () => null确实可以防止双击,并使其更难执行多次点击。但并不能完全阻止它。