首页 > 解决方案 > 导航到不在 AuthProviderBuilder 中的页面

问题描述

我正在使用 AuthProviderBuilder

AuthProviderBuilder(
      builder: (context, user) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'My App',
          theme: ThemeData(),
          home: ScreenRouter(user: user),
        );
      },
    );

带屏幕路由器

  Widget build(BuildContext context) {
    switch (user.status) {
      case Status.Unauthenticated:
        return WelcomeScreen();
      case Status.Authenticated:
        return HomeScreen();
      default:
        return SplashScreen();
    }
  }

现在,如何通过单击主屏幕中的按钮从主屏幕导航到不同的全新屏幕?

标签: flutterdart

解决方案


您必须在导航堆栈中推送新的路线。在您的新屏幕中创建静态函数

  static Future<void> show(BuildContext context) async {
    await Navigator.of(context).push(
      MaterialPageRoute(
          builder: (context) => MyNewScreenName(), fullscreenDialog: true),
    );
  }

只需通过主页中的按钮调用它

onPressed: () => MyNewScreenName.show(context)

推荐阅读