Flutter Overlay 组件用法详解
/**
*
* Overlay 是一个用于在当前界面上添加浮动层的组件。它是一个 StatefulWidget,其 createState 方法返回一个 OverlayState 对象。
* 通过 Overlay.of(context) 可以获得当前上下文的 OverlayState。
* 用 OverlayState.insert 可以在界面上添加一个 OverlayEntry,而 OverlayEntry.remove 可以将其从界面上移除。
*/
Flutter Overlay 示例代码
// 获取当前上下文的 OverlayState
var overlay = Overlay.of(context);
// 创建一个 OverlayEntry
var overlayEntry = OverlayEntry(
builder: (context) => Positioned(
child: Icon(Icons.hd),
));
// 在 Overlay 上插入该 OverlayEntry
overlay.insert(overlayEntry);
// 使用单次定时器,在2秒后移除 OverlayEntry
Timer(Duration(seconds: 2), () {
overlayEntry.remove();
});
// 使用多次定时器,每秒打印一次,到第5秒时取消定时器
var num = 0;
Timer.periodic(Duration(seconds: 1), (timer) {
print('123');
num++;
print(num);
if (num >= 5) {
timer.cancel(); // 取消定时器
}
});
// 在 State 对象的 dispose 方法中取消定时器
var timer = Timer.periodic(Duration(seconds: 1), (timer) {
print('123');
});
dispose() {
super.dispose();
timer.cancel(); // 取消定时器
}