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 时为计时器分配一个值
onPressed: (){
_timer = Timer.periodic(const Duration(seconds: 1), updateDataSource);
setState((){});
},
当您想停止添加图表时,请执行此操作。
onPressed: () {
if(_timer !=null) {
_timer.cancel();
}
},