【问题标题】:Flutter Web to update address bar url when switch to BottomNavigationBarFlutter Web 在切换到 BottomNavigationBar 时更新地址栏 url
【发布时间】:2021-06-29 09:33:28
【问题描述】:

我在flutter WEB上使用了BottomNavigationBar,并在BottomNavigationBarItem上添加了视图(StatelessWidget类)。当我切换到视图时,我需要更新地址 URL。

例如: BottomNavigationBarItem 添加到选项项下方

  • 首页
  • 付款
  • 指南
  • 设置

当我第一次启动时,它将是主页视图,然后 URL 是 http://localhost:64289/#/home 当我切换到付款视图时,URL 将是相同的(不更新)。

但我需要 URL 应该如下所示 http://localhost:64289/#/payment

我用过GetX,如果有人能给出答案 Getx 也可以。

我已经尝试过 Get.toNamed('/payment'); OR Navigator.pushNamed(context, routeName) 也是如此,但在这种情况下,我需要在每个页面上设置底部栏。所以请帮助我以其他方式实现它。

【问题讨论】:

标签: flutter dart flutter-getx


【解决方案1】:

如果您想通过命名路由使用持久导航栏,那么解决方案如下: https://github.com/jonataslaw/getx/issues/799#issuecomment-730719165

【讨论】:

  • 感谢您的回答!我已经验证了,但是切换到底部导航项时,URL Path 没有更新。
【解决方案2】:

使用

  static const MAIN_PAGE = '/main-page/:id';

在路线和设置中

initialRoute: "/main-page/0"

在 GetMaterialApp(main.dart) 中设置

var parameters = Get.parameters;
tabIndex.value = int.parse(parameters['id'].toString());

在 onInit(MainPageController)

最后添加

Get.offAllNamed("/main-page/"+tabIndex.value.toString());

当改变标签时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-26
    • 2019-02-02
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 2014-03-29
    • 2020-06-30
    • 1970-01-01
    相关资源
    最近更新 更多