Flutter 颤振:使用底部导航条实现内部导航的最佳方式

Flutter 颤振:使用底部导航条实现内部导航的最佳方式,flutter,flutter-bloc,flutter-navigation,Flutter,Flutter Bloc,Flutter Navigation,我正在开发一个颤振应用程序,现在我正在努力理解实现复杂的底部栏导航的最佳方式是什么。 以下是我的要求: 导航栏上的每个按钮都应指向不同的部分 每个部分都应该能够有多个屏幕 用户可以从一个分区的任何页面导航到另一个分区的任何页面,然后返回 如果我们回头看,每个部分都应该显示上次访问的页面 例如,假设我们有两个部分,每个部分由两页组成:SectionOneA,SectionOneB,SectionTwoA,SectionTwoB 一些用例: 用户通过按下SectionOneB内的按钮从Sect

我正在开发一个颤振应用程序,现在我正在努力理解实现复杂的底部栏导航的最佳方式是什么。 以下是我的要求:

  • 导航栏上的每个按钮都应指向不同的部分
  • 每个部分都应该能够有多个屏幕
  • 用户可以从一个分区的任何页面导航到另一个分区的任何页面,然后返回
  • 如果我们回头看,每个部分都应该显示上次访问的页面
例如,假设我们有两个部分,每个部分由两页组成:
SectionOneA
SectionOneB
SectionTwoA
SectionTwoB

一些用例:

  • 用户通过按下
    SectionOneB
    内的按钮从
    SectionOneB
    导航到
    SectionOneB
    ,当用户从
    SectionTwoB
    返回(在android上)时,我们应该导航回
    SectionOneB
  • 用户通过导航栏导航到
    SectionTwoA
    ,然后通过
    SectionTwoA
    中的按钮导航到
    SectionTwoB
    ,然后通过导航栏导航到
    SectionOneA
    ,然后再次按下导航栏中的
    SectionTwoB
    图标。我们应该显示
    第二节b
    。如果按back键,我们应该导航到
    SectionTwoA
在这两个示例中,当从一个区段移动到另一个区段时,应突出显示正确的导航条项目

我是新手,所以我边走边学。现在,我所做的是使用导航栏和
PageViewer
从一个节切换到另一个节,然后每个节使用
PageViewer
处理从一页切换到另一页的操作。在我不得不实现上面的第一个用例之前,这一切都很好,在这一点上,我觉得按照用例的要求实现一个合适的导航堆栈是相当具有挑战性的,我觉得重新思考整个事情会更好,只是我不知道实现这一点的最佳方式是什么。 临时解决方案是在第一节的
PageViewer
中包含
SectionTwoB
,但这不允许我突出显示正确的导航条项目


有没有关于如何处理这个问题的线索?我发现的所有例子似乎都太简单了,或者我无法理解如何将各个部分连接在一起。我将flutter_bloc用作州管理库。

@Dude同意,但不可能将所有相关代码都放在这里,也不可能生成一个最小的示例。另外,我相信我现在写的文章本身没有任何特别的问题,而是在如何解决问题上走错了方向,那么把它放在这里有什么意义呢?答案可能是基于意见的,但仍然有帮助。我建议使用路由包来处理这些情况。见和。