为什么可以通过点击外部对话框来关闭权限对话框,这样做会导致权限被永久拒绝。如何设置 barrierdismissible 错误警报对话框。
你必须在
barrierDismissible
中将
false
设置为
showDialog
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(children: [
ElevatedButton(
onPressed: () {
_dialogBuilder(context);
},
child: Text('show dialog'))
]),
);
}
}
Future<void> _dialogBuilder(BuildContext context) {
return showDialog<void>(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('dialog'),
content: const Text('this dialog won\'t dismiss'),
actions: <Widget>[
TextButton(
child: const Text('Disable'),
onPressed: () {
Navigator.of(context).pop();
},
),
TextButton(
child: const Text('Enable'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}