flutter - 导航到不在 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();
}
}
现在,如何通过单击主屏幕中的按钮从主屏幕导航到不同的全新屏幕?
解决方案
您必须在导航堆栈中推送新的路线。在您的新屏幕中创建静态函数
static Future<void> show(BuildContext context) async {
await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => MyNewScreenName(), fullscreenDialog: true),
);
}
只需通过主页中的按钮调用它
onPressed: () => MyNewScreenName.show(context)
推荐阅读
- python - lIndexError:列表分配索引超出范围
- mysql - 选择 SUM 达到 700 的记录
- ios - 模拟器中的 iOS MKMapSnapshotter 不起作用?
- r - 选择在数据框列表中重复的对
- ruby-on-rails - Carrierwave 如何重新处理原始文件
- amazon-s3 - Kentico 是否为媒体文件路径自动添加 CDN 端点 URL 前缀?
- selenium - 自动下载在 Firefox 中不起作用
- java - 在操作中使用静态变量
- c# - 我应该将许可证信息 (.licx) 放在 .NET Core 应用程序的什么位置?
- javascript - Ldap JS节点给出超时错误