gpt4 book ai didi

flutter-web - 转到新屏幕时如何更新 Flutter Web 中的浏览器栏路径

转载 作者:行者123 更新时间:2023-12-05 06:24:44 27 4
gpt4 key购买 nike

我部署了一个 flutter web 应用程序,但是当用户浏览到不同的屏幕时,浏览器栏中的路径永远不会更新。

可以在这里体验:https://owleyes.codemagic.app/#/

我正在使用以下方法导航:

                    Navigator.push(
context,
MaterialPageRoute(builder: (context) => AboutPage()),
);

https://github.com/owleyesdev/owleyes/blob/master/lib/pages/home_page.dart#L24

最佳答案

要完成此操作,您需要使用命名路由。使用命名路由会为 flutter 提供一个特定的字符串,以便在您导航到新路由时显示。使用命名路由的方法有据可查here ,但我将包括需要完成的基础知识。

您已经有一个 MaterialApp在你的小部件树的顶部。您只需要在此处使用 routes 定义您需要的路线即可。命名参数,接受类型 Map<String, WidgetBuilder>String关键是 String/#/ 之后附加到 URL .

return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
brightness: Brightness.dark,
primaryColorDark: Colors.black,
fontFamily: "GoogleSansRegular",
),
routes: {
'/': (context) => HomePage(),
'/aboutPage': (context) => AboutPage(),
}
);

我建议只定义 String键作为每个小部件的静态变量。这样就可以像 HomePage.route 一样访问它们, 这有助于接下来的必要修改。

现在不只是 Navigator.push , 你应该使用 Navigator.pushNamed , 它做同样的 Action ,只是接受一个 String路由作为参数。

使用示例:

Navigator.pushNamed(context, '/aboutPage');

使用它最终会得到一个 URL https://owleyes.codemagic.app/#/aboutPage .

关于flutter-web - 转到新屏幕时如何更新 Flutter Web 中的浏览器栏路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57566702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com