如何路由到页面,而不在颤动中删除 BottomNavigationBar?

Posted

技术标签:

【中文标题】如何路由到页面,而不在颤动中删除 BottomNavigationBar?【英文标题】:How to route to page, without removing BottomNavigationBar in flutter? 【发布时间】:2019-10-25 18:22:06 【问题描述】:

我正在用 Flutter 创建我的第一个应用,但我遇到了状态管理问题。我有一个带有 BottomNavigationBar 的 MainPage.dart,以及带有 tabPages[MainTab, ...] 的 body:。在 MainTab 中,我有一个 ListView,当我单击 ListView 项目时,它应该会打开详细信息,但是不应删除 BottomNavigationBar。 下面我有一个设计。(我正在使用Scoped Model)。

我尝试了这些解决方案 https://gist.github.com/HansMuller/0e76c54b1f2d4423efbdc2c185e761ef 和 How to route to page, without removing BottomNavigationBar in flutter?

但在这些情况下,我无法在没有底部导航的情况下转到页面。当我点击 FLoatingActionButton 时:它应该打开新页面 没有 底部导航(BottomNavigationBar 始终保持在底部,即使我不想要它)

【问题讨论】:

您可以使用嵌套的Navigator 来实现此工作流程。查看类似于CupertinoTabScaffold 的代码(在内部使用嵌套的Navigator)或这篇文章:***.com/questions/55213680/… 我需要 materialApp(所以我不能使用 cupertinoTab)。现在我尝试了使用 Navigator 的解决方案,但现在我无法在没有底部导航的情况下路由到页面(在某些情况下我不需要 bottomNavigationBar)。 medium.com/@daniyargilimov/… 【参考方案1】:

https://medium.com/@daniyargilimov/lutter-bottomnavigationbar-with-multiple-navigators-725ff013489c

这是工作示例...

【讨论】:

以上是关于如何路由到页面,而不在颤动中删除 BottomNavigationBar?的主要内容,如果未能解决你的问题,请参考以下文章

如何滑动到右侧的新页面而不是颤动的底部?

每 5 秒更新一次文本小部件,而不在颤动中使用“setstate()”

如何在颤动中删除特定路线?

如何在颤动中相对于前一个路由转换动画

如何在颤动中维护页面的状态

如何在颤动中推动替换删除整个导航堆栈?