我有一个手势检测器,需要启动一个网址。但如果手势得到多次点击,那么启动被调用多次。
在当前代码中,我尝试使用state _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),
),
),
);
}
3条答案
按热度按时间cedebl8k1#
试试这个:
m1m5dgzv2#
试试这个?应该能解决你的问题。
如果需要,您可以 Package 任何类型的Widget。
slmsl1lt3#
最简单的方法是在inkWell小部件中放置doubleTap:(){},当用户多次单击时,它将不执行任何操作