权限处理程序警报对话框屏障可关闭设置为 false

问题描述 投票:0回答:1

为什么可以通过点击外部对话框来关闭权限对话框,这样做会导致权限被永久拒绝。如何设置 barrierdismissible 错误警报对话框。

flutter permissions android-permissions
1个回答
0
投票

你必须在

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();
            },
          ),
        ],
      );
    },
  );
}

© www.soinside.com 2019 - 2024. All rights reserved.