Flutter 连续增减值
我想知道是否有一种方法可以持续增加或减少一个值,只要我的手指保持在按钮上。 你用什么方法Flutter 连续增减值,flutter,Flutter,我想知道是否有一种方法可以持续增加或减少一个值,只要我的手指保持在按钮上。 你用什么方法 感谢您的帮助您可以使用Flatter提供的GestureDetector小部件轻松完成此操作 基本上,这个想法是使用手势检测器的onLongPressStart、onLongPressEnd和计时器。从dart:async库定期执行此操作 onLongPressStart和onLongPressEnd是不言自明的,它们是长按事件开始和结束时的回调 Timer.periodic是我们用来为每个持续时间连续运行
感谢您的帮助您可以使用Flatter提供的
GestureDetector
小部件轻松完成此操作
基本上,这个想法是使用手势检测器的onLongPressStart
、onLongPressEnd
和计时器。从dart:async
库定期执行此操作
onLongPressStart
和onLongPressEnd
是不言自明的,它们是长按事件开始和结束时的回调
Timer.periodic
是我们用来为每个持续时间连续运行一些代码的工具,我们使用duration(毫秒:100)
来指定它,这意味着我们说,每100ms连续运行我的代码,直到我取消
这是完整的工作代码
import 'dart:async';
class TimerExample extends StatefulWidget {
@override
State<StatefulWidget> createState() => TimerState();
}
class TimerState extends State<TimerExample> {
int counter = 0; // Create a counter to maintain the number
Timer timer; // Create a timer that we can use to cancel later
@override
Widget build(BuildContext context) {
return Center(
child: GestureDetector(
onLongPressStart: (details) {
// When the longpress starts, create a Timer.periodic and assign it to timer variable
timer = Timer.periodic(Duration(milliseconds: 100), (timer) {
// Timer.periodic runs every 100 ms and updates the state
setState(() {
counter++;
});
});
},
onLongPressEnd: (details) {
// when longpress ends, call timer.cancel to stop your timer
timer.cancel();
},
child: Container(
height: 50,
width: 50,
color: Colors.deepOrange,
child: Text('$counter')),
),
);
}
}
导入'dart:async';
类TimerExample扩展StatefulWidget{
@凌驾
State createState()=>TimerState();
}
类TimerState扩展状态{
int counter=0;//创建一个计数器来维护数字
Timer Timer;//创建一个我们可以用来稍后取消的计时器
@凌驾
小部件构建(构建上下文){
返回中心(
儿童:手势检测器(
onLongPressStart:(详细信息){
//当长按启动时,创建一个Timer.periodic并将其分配给Timer变量
计时器=计时器。周期性(持续时间(毫秒:100),(计时器){
//Timer.periodic每100毫秒运行一次,并更新状态
设置状态(){
计数器++;
});
});
},
onLongPressEnd:(详细信息){
//当长按结束时,调用timer.cancel停止计时器
timer.cancel();
},
子:容器(
身高:50,
宽度:50,
颜色:颜色。深橙色,
子项:文本(“$counter”),
),
);
}
}
谢谢你给了我很多帮助:如果你的答案对我有用的话,请考虑接受我的回答。