Overlay创建层 和 单次定时器 多次定时器


事实上有一个Overlay的Widge,它是一个StatefullWidget,它的createState方法获取的就是OverlayState对象。
Overlay可以认为是一个UI上面的蒙版/浮空层,使用起来类似Stack,如何使用:
通过Overlay.of获得OverlayState对象,调用OverlayState.insert添加OverlayEntry,当不需要的时候,通过OverlayEntry.remove移除OverlayEntry
 
var overlay = Overlay.of(context);
var overlayEntry = OverlayEntry(
builder: (context) => Positioned(
child: Icon(Icons.hd),
));
overlay.insert(overlayEntry);

// 单次定时器
Timer(Duration(seconds: 2), () {
overlayEntry.remove();
});

// 多次定时器 需要手动取消定时器
var num = 0;
Timer.periodic(Duration(seconds: 1), (timer) {
print('123');

num++;
print(num);
if(num >= 5) {
timer.cancel();
}
});

// 或者在dispose取消
var timer = Timer.periodic(Duration(seconds: 1), (timer) {
print('123');
});
dispose() {
super.dispose();

timer.cancel();
}
原文地址:https://www.cnblogs.com/zhaofeis/p/12510000.html