提问人:Daniel Walczak 提问时间:6/30/2020 更新时间:6/30/2020 访问量:358
保留具有热重载功能的嵌套导航器路由
Preserve nested Navigator route with hot reload
问:
我有基本的嵌套导航器设置,但是当我在重新加载后在特定屏幕上工作时,我会重定向到初始屏幕而不是我正在处理的屏幕。是否有可能以某种方式保留当前屏幕?
class SignupNavigator extends StatelessWidget {
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
SignupNavigator();
Widget _routeBuilder(String name, BuildContext context,
{int materialIndex: 500}) {
final routes = {
SignupRoutes.role: (BuildContext _) => SignupRole(),
SignupRoutes.phoneNumber: (BuildContext _) => SignupPhoneNumber(),
SignupRoutes.schools: (BuildContext _) => SignupSchools(),
SignupRoutes.info: (BuildContext _) => SignupInfo(),
SignupRoutes.credentials: (BuildContext _) => SignupCredentials(),
SignupRoutes.summary: (BuildContext _) => SignupRole(),
};
return routes[name](context);
}
@override
Widget build(BuildContext context) {
return Navigator(
key: navigatorKey,
initialRoute: SignupRoutes.role,
onGenerateRoute: (routeSettings) {
return MaterialPageRoute(
builder: (context) => _routeBuilder(routeSettings.name, context),
);
},
);
}
}
答: 暂无答案
评论