检查在 Flutter 中按下按钮多长时间
Check how long was a button pressed in Flutter
实际上我目前正在使用 Division 来处理按钮的手势。但我仍然在寻找一种方法来完成它,无论有没有分裂。我希望长按按钮在 1000 毫秒而不是 500 毫秒后启动。
我已经在 SO 和其他网站上进行了搜索,但似乎仍然找不到这个确切问题的解决方案。
Division 就是这样运作的。我尝试使用 while 和 Future.delayed 但似乎无法使其正常工作。但是如果它不在 Division 的 Gesture() 中就完全没问题。因为我只是想让它正常工作,不管它是否使用除法。
Gestures()
..isTap((isTapped) => setState(() => pressed = isTapped))
..onLongPress(() { print("long pressed"); })
提前致谢。
您可以从此代码开始使用
GestureDetector(
onLongPress: () {
setState(() {
_lights = true;
});
},
);
你可以这样做的一种方法是使用 dart:async
中的 Timer
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');
}
}
实际上我目前正在使用 Division 来处理按钮的手势。但我仍然在寻找一种方法来完成它,无论有没有分裂。我希望长按按钮在 1000 毫秒而不是 500 毫秒后启动。
我已经在 SO 和其他网站上进行了搜索,但似乎仍然找不到这个确切问题的解决方案。
Division 就是这样运作的。我尝试使用 while 和 Future.delayed 但似乎无法使其正常工作。但是如果它不在 Division 的 Gesture() 中就完全没问题。因为我只是想让它正常工作,不管它是否使用除法。
Gestures()
..isTap((isTapped) => setState(() => pressed = isTapped))
..onLongPress(() { print("long pressed"); })
提前致谢。
您可以从此代码开始使用
GestureDetector(
onLongPress: () {
setState(() {
_lights = true;
});
},
);
你可以这样做的一种方法是使用 dart:async
Timer
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');
}
}