通过navigatorKey的方式
void main() {
runApp(MyApp());
}
final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>();
class MyApp extends StatelessWidget {
MyApp() {
}
// This widget is the view.common.root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
navigatorKey: navigatorKey,
);
}
}
跳转:
navigatorKey.currentState.pushName('跳转url')
fluro跳转:
AppRouteMatch match = router.match(path);
AppRoute route = match?.route;
Handler handler = route.handler;
Map<String, List<String>> parameters = match?.parameters ?? <String, List<String>>{};
navigatorKey.currentState.push(CupertinoPageRoute(builder: (BuildContext context) => handler.handlerFunc(context, parameters)));
获取context:
Context context = navigatorKey.currentState.overlay.context
注意:通过这种方式获取的context在某些情况下需要放在
Future.delayed(Duration(seconds: 0)).then((onValue) {
});
中使用。