flutter:使用底部导航栏实现内部导航的最佳方式

时间:2021-05-20 07:37:49

标签: flutter flutter-bloc flutter-navigation

我正在开发一个 Flutter 应用程序,现在我正在努力了解实现复杂底部栏导航的最佳方法是什么。 这是我的要求:

  • 导航栏上的每个按钮都应指向不同的部分
  • 每个部分都应该能够在其中包含多个屏幕
  • 用户可以从一个部分的任何页面导航到另一个部分的任何页面并返回
  • 如果我们回到它,每个部分都应该显示上次访问的页面

例如,假设我们有两个部分,每个部分由两页组成:SectionOneASectionOneBSectionTwoASectionTwoB

一些用例:

  • 用户通过按下 SectionOneB 内的按钮从 SectionTwoB 导航到 SectionOneB,当用户从 SectionTwoB 按下返回(在 android 上)时,我们应该导航回 {{ 1}}
  • 用户通过导航栏导航到 SectionOneB,然后通过 SectionTwoA 中的按钮导航到 SectionTwoB,然后通过导航栏导航到 SectionTwoA,然后按SectionOneA 图标再次出现在导航栏中。我们应该显示SectionTwo。如果按下返回键,我们应该导航到 SectionTwoB

在这两个示例中,当从一个部分移动到另一个部分时,应该突出显示正确的导航栏项目。

我是 flutter 的新手,所以我正在学习。现在,我所做的是使用带有 SectionTwoA 的导航栏从一个部分切换到另一个部分,然后每个部分使用一个 PageViewer 来处理从一个页面到另一个页面的切换。这一直很好,直到我不得不实现上面的第一个用例,在这一点上,在我看来,按照用例的要求实现一个适当的导航堆栈将是非常具有挑战性的,我觉得重新考虑整个事情会更好,只有我不知道解决这个问题的最佳方法是什么。 一个临时的解决方案是在第一部分的 PageViewer 中也包含 SectionTwoB,但这不允许我突出显示正确的导航栏项目。

关于如何解决这个问题的任何线索?我发现的所有示例似乎都太简单了和/或我无法理解如何将各个部分连接在一起。我使用 flutter_bloc 作为状态管理库。

0 个答案:

没有答案