我想向RawMaterialButton类添加一个属性,这样当我按住按钮时,它将连续增加变量的值。就像我们长时间按下移动相机的拍摄按钮一样,它会单击多个拍摄,直到我们离开该按钮。关于如何做到这一点的任何想法?
答案 0 :(得分:0)
您可以将GestureDetector与计时器一起使用。当onTapDown事件触发时,启动计时器。当onTapUp事件触发时,停止计时器。使用Timer.periodic()计时器重复增加变量。有与此相关的多个问题,例如:auto-increment,button-on-hold等。这是我为执行此操作而构建的小部件中的onTapDown和onTapUp方法(我希望在重复操作之前先等待一段时间,以便检查timer.tick):
Timer _timer;
.
.
.
void _onTapDown() {
<on pressed action>
_timer = Timer.periodic(Duration(milliseconds: 200), (timer) {
if (timer.tick < 3) {
return;
}
if (widget == null) {
timer.cancel();
return;
}
<on pressed action>
});
}
void _onTapUp() {
if (_timer == null) {
return;
}
_timer.cancel();
}