Flutter获取全局context
参考:http://events.jianshu.io/p/1c30ef3111b2
1创建一个全局的GlobalKey
class Global{ static GlobalKey<NavigatorState> navigatorKey = GlobalKey(); }
2MaterialApp中设置navigatorKey
在main。dart中配置全局
return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), navigatorKey: Global.navigatorKey, routes: <String, WidgetBuilder>{ "login": (context) => MyApp1(), );
3诸如工具类需要context获取context
BuildContext? context = Global.navigatorKey.currentState!.context;
使用在另一个类里,与创建的类在一个页面
/** * 获取全局context */ static BuildContext appContext() { return Global.navigatorKey.currentState!.context; }
这样在其他页面使用全局context的时候,只用引入注册类的文件+类名.appContext(),如 context: AppConfig.appContext(),