删除 Flutter 中导航的叠加

Bis*_*hal 6 flutter flutter-navigation flutter-web

我用来Overlay.of(context)在单击按钮时显示一些内容。但有两个问题:

  • 导航到下一个屏幕时,覆盖层不会被删除。
  • 里面使用了下拉按钮。但菜单项显示在其下方。

这是“预期输出”。 预期输出

当前输出在此屏幕截图中。

电流输出

那么,如何在导航时删除覆盖层并正确显示下拉列表呢?如果无法使用覆盖,有什么解决方法吗?

PS:我用来NavigatorKey在单击固定侧栏中的名称时更改表格,如屏幕截图所示。

Bis*_*hal 2

我找到了解决问题的办法。

  • Overlay使用RouteAware+进行导航时会被删除,如本stackoverflow 答案RouteObserver所示。
  • 对于在覆盖层下方呈现的下拉项,有一个默认下拉按钮的分支,它将下拉项的覆盖层推入root navigator而不是嵌套导航器中,并将它们显示在顶部。