entry 是 OverlayEntry 类的一个实例
entry?.remove();
Run Code Online (Sandbox Code Playgroud)
错误
Package:flutter/src/widgets/overlay.dart': Failed assertion: line 133 pos 12: '_overlay != null':
Run Code Online (Sandbox Code Playgroud)
Rav*_*eri 18
解决
经过大量研究和尝试,我发现了下面一个简单的解决方案。
entry?.remove();
entry = null;
Run Code Online (Sandbox Code Playgroud)
试试这个,它对我有用
if (overlayEntry != null && overlayEntry.mounted) {
overlayEntry?.remove();
overlayEntry = null;
}
Run Code Online (Sandbox Code Playgroud)
小智 7
如果没有 OverlayEntry 插入到 Overlay 并且您尝试调用 remove 方法,您将收到该错误:Failed assertion: '_overlay != null'。所以在删除条目之前,添加一个条件来判断它是否合法。它更像是一个黑客代码,isEntryNotNull为了方便和易于理解,您可以添加一个变量。当你在 Overlay 中插入一个新的 OverlayEntry 时,将它重新分配给 entry 变量,那么条件就会正常工作。
if (entry != null) {
entry.remove();
entry = null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3029 次 |
| 最近记录: |