【问题标题】:Navigate out from CupertinoTabScaffold从 CupertinoTabScaffold 导航出去
【发布时间】:2019-11-26 05:16:48
【问题描述】:

我有一个带有 LoginScreen 的应用程序,在成功登录后会转到 HomeScreen。我使用下面的代码来替换小部件并启动一个新的导航堆栈:

Navigator.pushReplacement(
    context,
    CupertinoPageRoute(
      builder: (context) => HomeScreen(),
    ),
  );

主屏幕是一个 CupertinoTabScaffold 和 2 个 CupertinoTabViews

第二个CupertinoTabView 包含一个带有注销按钮的小部件。

成功注销后,我想删除 HomeWidget,然后转到 LoginScreen。

使用

Navigator.pushReplacement(
    context,
    CupertinoPageRoute(
      builder: (context) => LoginScreen(),
    ),
  );

在第二个CupertinoTabView 内的Widget 中仅重置其导航,而LoginScreen 出现在第二个CupertinoTabView 内。

我想要的是一些代码来删除我的 HomeScreen 并使用 LoginScreen 启动一个新的导航堆栈。

【问题讨论】:

标签: flutter dart flutter-cupertino cupertinotabbar


【解决方案1】:

从官方 FlutterGallery 源代码中找到解决方案。这将导航到根目录。

https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart#L122

Navigator.of(context, rootNavigator: true).pop();

【讨论】:

    猜你喜欢
    • 2019-12-26
    • 2019-02-18
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 2020-09-20
    • 2015-03-13
    相关资源
    最近更新 更多