Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 485 Vote(s) - 3.44 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Prevent dialog from closing on outside touch in Flutter

#1
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"),
),
],
),
),
));



Reply

#2
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: ...
)
Reply

#3
If you want to prevent dialog close when back button pressed then refer below code. You have to wrap your AlertDialog in WillPopScope widget and make onWillPop property value with function which return Future.value(false).

showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return WillPopScope(
onWillPop: () => Future.value(false),
child:AlertDialog(
title: new Text("Alert Title"),
content: new SingleChildScrollView(
child: Container(),),
actions: <Widget>[
new FlatButton(
child: new Text("Close"),
onPressed: () {
},
),
],
)
)
},
);
Reply

#4
**just Add this Line**

barrierDismissible: false,

**like as**

showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text(
"Classes",
style: TextStyle(
fontSize: 24, color: Colors.black, fontFamily: 'intel'),
),
content: setupAlertDialoadClassList(
context, listClasses, Icons.class__outlined, 0),
);
});
Reply

#5
Always use top flutter packages like [get][1]


[1]:

[To see links please register here]


```
Get.generalDialog(pageBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation,) {
return SimpleDialog(
...
);
}, barrierDismissible: false /* its default value */);
```
Reply

#6
**barrierDismissible: false,**

Use this one as I described below.
showDialog(
barrierDismissible: false,
builder // code //
Reply

#7
This will disable device navigation

showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return WillPopScope(
onWillPop: () async => false,
child:AlertDialog(
title: new Text("Alert Title"),
content: new SingleChildScrollView(
child: Container(),),
actions: <Widget>[
new FlatButton(
child: new Text("Close"),
onPressed: () {
},
),
],
)
)
},
);
Reply

#8
If you ar not using a showDialog, otherwise you'r using GestureDetectore, there's a easy way i just did, Just put a GestureDetector inside another one, then set the onTap action if that's your case on both GestureDetector's, with the diference that in one you are gonna put an action, an in the other one you can just leave it empty, just like this.

GestureDetector(
onTap: () { //The Gesture you dont want to afect the rest
Navigator.pop(context);
},
child: Container(
color: Colors.transparent,
child:GestureDetector(
onTap: () {}, //This way is not going to afect the inside widget
child: Container() //your widget
)
)
)
Reply

#9
**Phone navigation bar action disabled and disable outer touch in AlertDialog**

showDialog(
context: context,
barrierDismissible: false, // <-- Set this to false.
builder: (_) => WillPopScope(
onWillPop: () async => false, // <-- Prevents dialog dismiss on press of back button.
child: AlertDialog(),
),
);



Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through