What’s BuildContext?

A handle to the location of a widget in the widget tree.

Check the official documentation for more.

BuildContext explained for Android Developers

The BuildContext class presents a set of methods that can be used from StatelessWidget.build methods and from methods on State objects. BuildContext objects are passed to WidgetBuilder functions and are available from the State.context member. This is somewhat analogous to how Android/Kotlin APIs manage context, where the context provides access to application-specific resources and classes, allowing developers to interact with the app’s environment.

Example Code

Here is an example of how to use BuildContext:

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Demo')),
body: Builder(
builder: (BuildContext context) {
return TextButton(
child: const Text('BUTTON'),
onPressed: () {
Scaffold.of(context).showBottomSheet(
(BuildContext context) {
return Container(
alignment: Alignment.center,
height: 200,
color: Colors.amber,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text('BottomSheet'),
ElevatedButton(
child: const Text('Close BottomSheet'),
onPressed: () {
Navigator.pop(context);
},
),
],
),
),
);
},
);
},
);
},
),
);
}

BuildContext Remarks

The BuildContext for a particular widget can change location over time as the widget is moved around the tree. Therefore, values returned from the methods on this class should not be cached beyond the execution of a single synchronous function.

Bootstrap Your app with ShipFlutter

A fully customizable starter kit to seamlessly launch responsive Android, iOS, and Web apps with Flutter powered by Firebase and Vertex AI.