How to navigate to specific MaterialPageRoute in app from a notification in Flutter
There aren't very many cases where a GlobalKey is a good idea to use, but this might be one of them.
When you build your MaterialApp
(which I assume you're using), you can pass in a navigatorKey
parameter which specifies the key to use for the navigator. You can then use this key to access the navigator's state. That would look something like this:
class _AppState extends State<App> {
final GlobalKey<NavigatorState> navigatorKey = GlobalKey(debugLabel: "Main Navigator");
@override
Widget build(BuildContext context) {
return new MaterialApp(
navigatorKey: navigatorKey,
home: new Scaffold(
endDrawer: Drawer(),
appBar: AppBar(),
body: new Container(),
),
);
}
}
And then to use it you access the navigatorKey.currentContext:
_goToDeeplyNestedView() {
navigatorKey.currentState.push(
MaterialPageRoute(builder: (_) => DeeplyNestedView())
);
}
Initialize navigatorState
globalkey
final GlobalKey<NavigatorState> navigatorKey = GlobalKey(debugLabel: "Main Navigator");
navigatorKey.currentState.push(
MaterialPageRoute(builder: (_) => classname())
);