Flutter Widget 获取 Context:使用 BuildContext 访问主题、导航和本地化信息
Flutter 中的 Widget 可以通过 BuildContext 来获得 context。BuildContext 是一个不可变的对象,用于在 widget 树中传递上下文信息,包括当前 widget 的位置、主题和本地化信息等。
Widget 中可以通过 BuildContext 来访问一些重要的信息,例如:
- 执行 Navigator 操作(如 push、pop)需要使用 'Navigator.of(context)' 方法。
- 获取当前主题信息需要使用 'Theme.of(context)' 方法。
- 获取本地化信息需要使用 'Localizations.of(context, xxx)' 方法。
在 Flutter 中,每个 Widget 都有一个 BuildContext 对象,可以通过 BuildContext 的 'ancestorWidgetOfExactType' 方法来获取指定类型的父 widget。例如,以下代码将查找最近的 Scaffold widget,并使用它的 ScaffoldState 对象来打开一个 SnackBar:
Scaffold.of(context).showSnackBar(SnackBar(
content: Text('Hello, Flutter!'),
));
需要注意的是,必须在 Scaffold 的 build 方法中才能使用 'Scaffold.of(context)' 方法,否则会抛出异常。因为在 build 方法之前,Scaffold 的 BuildContext 对象还没有创建。
原文地址: https://www.cveoy.top/t/topic/mSM7 著作权归作者所有。请勿转载和采集!