自定义的原材料按钮-颤振

时间:2020-08-24 13:48:40

标签: flutter button widget

我想向RawMaterialButton类添加一个属性,这样当我按住按钮时,它将连续增加变量的值。就像我们长时间按下移动相机的拍摄按钮一样,它会单击多个拍摄,直到我们离开该按钮。关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以将GestureDetector与计时器一起使用。当onTapDown事件触发时,启动计时器。当onTapUp事件触发时,停止计时器。使用Timer.periodic()计时器重复增加变量。有与此相关的多个问题,例如:auto-incrementbutton-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();
}