如何解决检查Flutter中的按钮按下了多长时间
我实际上正在使用Division处理按钮的手势。但是我仍在寻找一种方法,无论是否进行分割。我希望在1000毫秒而不是500毫秒后长按按钮。
我已经在SO和其他网站上进行了搜索,但似乎仍然找不到解决此确切问题的方法。
这是与Division一起工作的方式。我尝试使用while和Future.delayed,但似乎无法使其正常工作。但是,如果不在Division的Gesture()中,那也很好。因为我只是希望它能够正常运行,而不管它是否正在使用Division。
Gestures()
..isTap((isTapped) => setState(() => pressed = isTapped))
..onLongPress(() { print("long pressed"); })
谢谢。
解决方法
一种实现此目的的方法是使用Timer
中的dart:async
class _MyWidgetState extends State<MyWidget> {
Timer timer;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTapDown: (_) {
timer = Timer(Duration(milliseconds: 1000),onLongerPress);
},onTapUp: (_){
timer.cancel();
},child: Container(child: Center(child: Text('Click here')),width: 200,height: 50,color: Colors.green),);
}
void onLongerPress() {
print('onLongerPress called');
}
}
,
您可以从此代码中使用
GestureDetector(
onLongPress: () {
setState(() {
_lights = true;
});
},);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。