There's a property called barrierDismissible that you can pass to showDialog ; which makes dialogs dismissible or not on external click
showDialog(
barrierDismissible: false, // prevent click outside
builder: WillPopScope( // prevent android back button
onWillPop: () async => false,
child: ...)
)