Flutter 删除 Overlay 添加的 OverlayEntry
要删除之前添加的 entry,可以通过 Overlay 的 remove 方法来实现。具体操作如下:
- 获取 OverlayState 对象:
OverlayState overlayState = Overlay.of(context);
- 调用 remove 方法删除 entry:
overlayState.remove(entry);
其中,entry 是添加到 Overlay 中的 widget 对应的 OverlayEntry 对象。如果不知道 entry 的具体对象,可以通过在添加时保存 entry 对象的方式来获取。例如:
OverlayEntry entry = OverlayEntry(builder: (BuildContext context) {
return Container(
child: Text('Overlay Widget'),
);
});
OverlayState overlayState = Overlay.of(context);
overlayState.insert(entry);
// 保存 entry 对象
this._overlayEntry = entry;
这样就可以在需要删除时获取到 _overlayEntry 对象,然后调用 remove 方法删除即可。
原文地址: https://www.cveoy.top/t/topic/mS9p 著作权归作者所有。请勿转载和采集!