Scaffold. of() called with a context that does not contain a Scaffold

Link Copied To Clipboard !

flutter-scafold-from-context Flutter

When the Scaffold is actually created in the same build function, the context argument to the build function can’t be used to find the Scaffold (since it’s “above” the widget being returned in the widget tree). In such cases, the following technique with a Builder can be used to provide a new scope with a BuildContext that is “under” the Scaffold:


Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text('Demo')
    ),
    body: Builder(
      // Create an inner BuildContext so that the onPressed methods
      // can refer to the Scaffold with Scaffold.of().
      builder: (BuildContext context) {
        return Center(
          child: RaisedButton(
            child: Text('SHOW A SNACKBAR'),
            onPressed: () {
              Scaffold.of(context).showSnackBar(SnackBar(
                content: Text('Have a snack!'),
              ));
            },
          ),
        );
      },
    ),
  );
}

You May Also Like