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(),

 
 

 



posted @ 2023-03-20 13:00  lude1994  阅读(1705)  评论(0编辑  收藏  举报