为什么在构建 Navigator 后初始路由不是堆栈中的唯一路由?

Why is initial route not the only route on the stack after building Navigator?

如果定义了初始路由,Navigator 将使用两条路由构建堆栈:初始路由和“/”路由。

查看 link 上的示例,该示例显示作为初始路由的主页有一个 returns 到“/”路由的后退按钮。

如何使初始路由成为堆栈中的唯一路由?

因此,当您使用 switch 时,您 return default 中的 null,它将 HomePage 设置为 initialRoute,并让机器知道,initialRoute 就是那个,Stack 中没有任何东西可以 return,除了 HomePage。因此,您再也看不到后退按钮了。

   switch (settings.name) {
      case HomePage.route:
        return MaterialPageRoute(builder: (_) => HomePage());
      case OverviewPage.route:
        return MaterialPageRoute(builder: (_) => OverviewPage());
      default:
        // this would do the job
        return null;
   }

link我也做了修改,你也可以试试。试用 this link,然后告诉我。

像这样尝试,initialRoute:'/' in MaterialApp

 const String homeRoute = '/';
    void main() {
      runApp(
        MaterialApp(
          title: 'Example',
          initialRoute:homeRoute,
          onGenerateRoute: generateRoute
        ),
      );
    }