androidiosdialogdartflutter

Prevent dialog from closing on outside touch in Flutter


In Flutter, I write a simple dialog for the loader during async task. When I touch outside dialog dismissed, How can I stop this behaviour?

Code

  showDialog(
    context: context,
    builder: (_) => new Dialog(
          child: new Container(
            alignment: FractionalOffset.center,
            height: 80.0,
            padding: const EdgeInsets.all(20.0),
            child: new Row(
              mainAxisSize: MainAxisSize.min,
              children: [
                new CircularProgressIndicator(),
                new Padding(
                  padding: new EdgeInsets.only(left: 10.0),
                  child: new Text("Loading"),
                ),
              ],
            ),
          ),
        ));

Solution

  • There's a property called barrierDismissible that you can pass to showDialog ; which makes dialogs dismissible or not on external click

    showDialog(
      barrierDismissible: false,
      builder: ...
    )