Dart 如何从覆盖中删除覆盖入口?
我只是想删除我先前插入到Dart 如何从覆盖中删除覆盖入口?,dart,flutter,Dart,Flutter,我只是想删除我先前插入到覆盖中的OverlayEntry: rootOverlay.insert(entry); 不过,我似乎找不到一种方法可以做到这一点。 我确实在overlystate类中找到了一个私有方法\u remove,但我无法访问该方法 我错过什么了吗?在Flatter中如何执行此操作?移除方法不在OverlyState内部,而是OverlyEntry本身 entry.remove() 哦,哇,又一天,雷米的又一个回答!但这对我来说似乎有点奇怪,为什么它是这样实现的?我没有“为什
覆盖中的OverlayEntry
:
rootOverlay.insert(entry);
不过,我似乎找不到一种方法可以做到这一点。
我确实在overlystate
类中找到了一个私有方法\u remove
,但我无法访问该方法
我错过什么了吗?在Flatter中如何执行此操作?移除方法不在OverlyState
内部,而是OverlyEntry
本身
entry.remove()
哦,哇,又一天,雷米的又一个回答!但这对我来说似乎有点奇怪,为什么它是这样实现的?我没有“为什么?”。但我觉得这其实很聪明。你总是需要把你的覆盖条目放在某个地方,无论如何都要使用marksNeedsBuild
。啊,最后我想我知道了。这是因为在许多情况下,您需要删除dispose
方法中的覆盖。问题是,您通常不能在dispose中调用(上下文)
的。这很有意义!此外,您可能有多个,并希望指定要删除的。但是,我仍然可以使用按钮删除覆盖,但不能从dispose中删除。