title: How to fix "Navigator operation requested with a context that does not include a Navigator" when attempting to display a dialog
body: <p>I am trying to show a non dismissable dialog after verifying the textfields in a form but it keeps printing:</p>
  <pre><code>03-22 12:34:46.373 8974-9001/com.mywebsite I/flutter: ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
  03-22 12:34:46.397 8974-9001/com.mywebsite I/flutter: The following assertion was thrown while handling a gesture:
  03-22 12:34:46.397 8974-9001/com.mywebsite I/flutter: Navigator operation requested with a context that does not include a Navigator.
  03-22 12:34:46.397 8974-9001/com.mywebsite I/flutter: The context used to push or pop routes from the Navigator must be that of a widget that is a
  03-22 12:34:46.397 8974-9001/com.mywebsite I/flutter: descendant of a Navigator widget.
  03-22 12:34:46.404 8974-9001/com.mywebsite I/flutter: When the exception was thrown, this was the stack:
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #0      Navigator.of.&lt;anonymous closure&gt; (package:flutter/src/widgets/navigator.dart:725:9)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #1      Navigator.of (package:flutter/src/widgets/navigator.dart:731:6)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #2      showDialog (package:flutter/src/material/dialog.dart:486:20)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #3      SignupBodyState._showProgressDialog (package:truck_am_easy/signup.dart:310:5)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #4      SignupBodyState._verifyInputs (package:truck_am_easy/signup.dart:332:9)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #5      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:478:14)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #6      _InkResponseState.build.&lt;anonymous closure&gt; (package:flutter/src/material/ink_well.dart:530:30)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #7      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #8      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:161:9)
  03-22 12:34:46.419 8974-9001/com.mywebsite I/flutter: #9      TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:123:7)
  03-22 12:34:46.420 8974-9001/com.mywebsite I/flutter: #10     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
  03-22 12:34:46.420 8974-9001/com.mywebsite I/flutter: #11     BindingBase&amp;GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20)
  03-22 12:34:46.420 8974-9001/com.mywebsite I/flutter: #12     BindingBase&amp;GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
  03-22 12:34:46.420 8974-9001/com.mywebsite I/flutter: #13     BindingBase&amp;GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
  03-22 12:34:46.420 8974-9001/com.mywebsite I/flutter: #14     BindingBase&amp;GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
  03-22 12:34:46.420 8974-9001/com.mywebsite I/flutter: #15     BindingBase&amp;GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
  03-22 12:34:46.420 8974-9001/com.mywebsite I/flutter: #16     _invoke1 (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:134)
  03-22 12:34:46.420 8974-9001/com.mywebsite I/flutter: #17     _dispatchPointerDataPacket (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:91)
  03-22 12:34:46.425 8974-9001/com.mywebsite I/flutter: Handler: onTap
  03-22 12:34:46.425 8974-9001/com.mywebsite I/flutter: Recognizer:
  03-22 12:34:46.425 8974-9001/com.mywebsite I/flutter:   TapGestureRecognizer#01b7d(debugOwner: GestureDetector, state: ready, won arena, finalPosition:
  03-22 12:34:46.425 8974-9001/com.mywebsite I/flutter:   Offset(187.0, 542.0), sent tap down)
  03-22 12:34:46.425 8974-9001/com.mywebsite I/flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
  </code></pre>
  <p>but refused to show the dialog.</p>
  <p>Please what am I doing wrong?</p>
  <h2>Part of my Code</h2>
  <pre><code>@override
    Widget build(BuildContext context) {
      return new MediaQuery(
          data: new MediaQueryData(),
          child: new MaterialApp(
            home: _buildHomeUI(),
          ));
    }
  
    Widget _buildHomeUI() {
      return new Scaffold(
          key: _scaffoldKey,
          body: new SafeArea(
            top: false,
            bottom: false,
            child: new Container(
                decoration: new BoxDecoration(color: MyColors.colorPrimary),
                child: new ListView(
                  children: &lt;Widget&gt;[
  //                  I removed the text fields.
                    new Container(
                      decoration:
                          new BoxDecoration(color: MyColors.colorBackground),
                      padding: const EdgeInsets.only(
                          top: 10.0, left: 15.0, right: 15.0),
                      child: new Form(
                        key: _formKey1,
                        autovalidate: _autoValidate,
                        child: new Column(
                          children: &lt;Widget&gt;[
                            new Container(
                              margin: const EdgeInsets.symmetric(
                                  horizontal: 50.0, vertical: 25.0),
                              padding:
                                  const EdgeInsets.symmetric(horizontal: 30.0),
                              decoration: new BoxDecoration(
                                  borderRadius: new BorderRadius.circular(30.0),
                                  color: MyColors.colorAccent),
                              child: new Container(
                                margin:
                                    const EdgeInsets.symmetric(horizontal: 10.0),
                                padding:
                                    const EdgeInsets.symmetric(vertical: 5.0),
                                child: new FlatButton(
                                    onPressed: _verifyInputs,
                                    child: const Text(Strings.signUp),
                                    highlightColor: MyColors.colorAccentDark,
                                    textColor: Colors.white),
                              ),
                            ),
  
                          ],
                        ),
                      ),
                    )
                  ],
                )),
          ));
    }
  
  void _showProgressDialog() {
      showDialog(
          context: context,
          barrierDismissible: false,
          child: new Dialog(
            child: new Row(
              mainAxisSize: MainAxisSize.min,
              children: &lt;Widget&gt;[
                new CircularProgressIndicator(),
                new Text(
                  &quot;Creating your details...&quot;,
                  style: const TextStyle(fontFamily: Strings.customFont),
                )
              ],
            ),
          ));
    }
  
    void _verifyInputs() {
      final form = _formKey1.currentState;
      if (form.validate()) {
        if (checkBoxValue) {
          form.save();
          _showProgressDialog();
          _parseResponse();
        } else {
          final snackBar = new SnackBar(
            content: new Text(
              &quot;Please accept the terms and conditions&quot;,
              style: const TextStyle(fontFamily: Strings.customFont),
            ),
          );
          _scaffoldKey.currentState.showSnackBar(snackBar);
        }
      } else {
        _autoValidate = true;
      }
    }
  
    void _parseResponse() async {
      Map response = await registerUser();
      Navigator.pop(context);
      print(response);
    }
  </code></pre>