Button 我怎样才能达到“目标”;onContinuousPress“;你喜欢什么样的行为?

Button 我怎样才能达到“目标”;onContinuousPress“;你喜欢什么样的行为?,button,flutter,gesture,Button,Flutter,Gesture,假设我在颤振应用程序的某个地方有一个按钮: FloatingActionButton( backgroundColor: Theme.of(context).primaryColor, child: Icon(Icons.arrow_upward), onPressed: _someAction, ); 我希望只要我的手指点击按钮,就会执行\u someAction()(即,如果我连续点击T秒\u someAction() 应执行N次 其中N=(int)(60/T+1)) 我调查 但是在

假设我在颤振应用程序的某个地方有一个按钮:

FloatingActionButton(
 backgroundColor: Theme.of(context).primaryColor,
 child: Icon(Icons.arrow_upward),
 onPressed: _someAction,
);
我希望只要我的手指点击按钮,就会执行
\u someAction()
(即,如果我连续点击T秒
\u someAction()
应执行N次

其中
N=(int)(60/T+1))

我调查 但是在那里找不到我需要的东西。
例如,为了增加/减少一些
int
value…

使用
onTapDown
onTapUp
GestureDetector
Timer
来实现您的目标,我需要这个

手势检测器

onTapDown: (_) => setState(() {
    _timerStart = true;
    _restartTimer();
}),
onTapUp: (_) => setState(() => _timerStart = false),
一些行动

void _restartTimer() {
  _timer?.cancel();
  _timer = Timer(Duration(milliseconds: 100), () {
    // _someAction()
    if (_timerStart) {
        _restartTimer();
    }
  });
}

使用
GestureDetector
Timer
中的
onTapDown
onTapUp
实现您的目标

手势检测器

onTapDown: (_) => setState(() {
    _timerStart = true;
    _restartTimer();
}),
onTapUp: (_) => setState(() => _timerStart = false),
一些行动

void _restartTimer() {
  _timer?.cancel();
  _timer = Timer(Duration(milliseconds: 100), () {
    // _someAction()
    if (_timerStart) {
        _restartTimer();
    }
  });
}

谢谢,它确实有用。我只是做了一个小的改动,所以它会更清楚,而且,我打开了一个关于颤振项目的特性请求@Shai很高兴听到它的工作,但似乎你接受了不同的答案,你能重新检查吗?我不能接受你的两个答案吗?它们都是很好的解决方案。谢谢,确实有效。我只是做了一个小的改动,所以它会更清楚,而且,我打开了一个关于颤振项目的特性请求@Shai很高兴听到它的工作,但似乎你接受了不同的答案,你能重新检查吗?我不能接受你的两个答案吗?它们都是很好的解决方案。