dart - 导航器堆栈不起作用
问题描述
我有三个屏幕。A、B 和 C。我使用以下代码推送 A、B 和 C。A 是应用程序的第一个屏幕。
class FadeInSlideOutRoute<T> extends MaterialPageRoute<T> {
FadeInSlideOutRoute({WidgetBuilder builder, RouteSettings settings})
: super(builder: builder, settings: settings);
@override
Widget buildTransitions(BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child) {
if (settings.isInitialRoute)
return child;
// Fades between routes. (If you don't want any animation,
// just return child.)
return new FadeTransition(opacity: animation, child: child);
}
}
在构建方法中声明屏幕。
@override
Widget build(BuildContext context) {
return new MaterialApp(
debugShowCheckedModeBanner: false,
theme: new ThemeData(
primarySwatch: Colors.blue,
),
onGenerateRoute: (RouteSettings settings) {
switch (settings.name) {
case '/B':
return new FadeInSlideOutRoute(
builder: (_) => new LoginScreen(),
settings: settings,
);
case '/C':
return new FadeInSlideOutRoute(
builder: (_) => new ForgotPasswordScreen(),
settings: settings,
);
}
assert(false);
},
home: _LandingScreen(),
);
}
现在,我正在调用以下方法来推送新屏幕。
Navigator.pushNamed(context, '/B');
在那之后
Navigator.pushNamed(context, '/C');
问题是
当我从屏幕C按下 Android 设备时,它直接来到屏幕A。但它应该在屏幕B上。请帮助各位。
解决方案
推荐阅读
- powerbi - 自定义函数 Power Query (M) - 返回表
- visual-studio - 更改多个文件的语言模式
- android - 房间多对多错误:查询返回的列没有字段
- c# - 如何使节点成为 ParentNode?
- c++ - 在您的应用程序中使用 dbghelp 的最佳实践
- python - 从 QML 的通信 --> 到 Python --> 返回到 QML
- powershell - 如何使用 PowerShell 从“应用程序和服务日志”中读取分析 Windows 事件?
- flutter - 有什么方法可以使用 Flutter/Dart 在 Windows 上列出物理磁盘?
- javascript - React/Mobx:从数组中计算选定的 ID
- python - Python 获取会话密钥(BeautifulSoup)