在 flutter 中停止一个函数
Stopping a function in flutter
我是 flutter 的新手,我对 flutter 函数有疑问。它将数据添加到图表中,我编写了一个按钮来开始更新图表。我该如何阻止它?我创建了另一个按钮,我想对其进行编程以停止添加图表的功能。
函数:
void updateDataSource(Timer timer) {
chartData.add(LiveData(time++, (y)));
chartData.removeAt(0);
_chartSeriesController.updateDataSource(
addedDataIndex: chartData.length - 1, removedDataIndex: 0);
}
第一个按钮:
onPressed: () {
Timer.periodic(const Duration(seconds: 1), updateDataSource);
},
第二个按钮:
onPressed: () {
chartData.clear();
},
我输入 chartData.clear() 但这会清除所有内容,我无法再次回调函数。
提前致谢!
这是因为您的 Timer.periodic 函数每秒 运行
解决方案:
创建状态定时器变量
Timer? _timer;
第一次按下时给定时器赋值
onPressed: (){
_timer = Timer.periodic(const Duration(seconds: 1), updateDataSource);
setState((){});
},
当您想停止添加图表时执行。
onPressed: () {
if(_timer !=null) {
_timer.cancel();
}
},
我是 flutter 的新手,我对 flutter 函数有疑问。它将数据添加到图表中,我编写了一个按钮来开始更新图表。我该如何阻止它?我创建了另一个按钮,我想对其进行编程以停止添加图表的功能。
函数:
void updateDataSource(Timer timer) {
chartData.add(LiveData(time++, (y)));
chartData.removeAt(0);
_chartSeriesController.updateDataSource(
addedDataIndex: chartData.length - 1, removedDataIndex: 0);
}
第一个按钮:
onPressed: () {
Timer.periodic(const Duration(seconds: 1), updateDataSource);
},
第二个按钮:
onPressed: () {
chartData.clear();
},
我输入 chartData.clear() 但这会清除所有内容,我无法再次回调函数。
提前致谢!
这是因为您的 Timer.periodic 函数每秒 运行
解决方案:
创建状态定时器变量
Timer? _timer;
第一次按下时给定时器赋值
onPressed: (){
_timer = Timer.periodic(const Duration(seconds: 1), updateDataSource);
setState((){});
},
当您想停止添加图表时执行。
onPressed: () {
if(_timer !=null) {
_timer.cancel();
}
},