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很高兴听到它的工作,但似乎你接受了不同的答案,你能重新检查吗?我不能接受你的两个答案吗?它们都是很好的解决方案。