如何为AlertDialog抖动禁用onBackPressed()

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

我有一个AlertDialog(),它的barrierDismissible已设置为false。但是,当用户按下android设备上的后退按钮时,AlertDialog将关闭。如何完全防止用户关闭AlertDialog()?

这是我到目前为止所做的:

          return showDialog<bool>(
            context: context,
            barrierDismissible: false,
            builder: (BuildContext context) {
              return AlertDialog(
                title: Text('Title'),
                content: Text('This is the alert dialog content'),
                actions: <Widget>[
                  FlatButton(
                    child: Text('ok'),
                    onPressed: () {
                      Navigator.of(context).pop();
                      print('ok you win');
                    },
                  ),
                ],
              );
            },
          );
flutter flutter-layout
2个回答
0
投票

尝试使用WillPopScope()处理WillPopScope()事件

onBackPressed()

0
投票

您可以将WillPopScope用作AlertDialog的父级

showDialog(
                            context: context,
                            barrierDismissible: false,
                            builder: (BuildContext context) {
                              return WillPopScope(
                                onWillPop: () {return Future.value(false);},
                                child:  return AlertDialog(
                title: Text('Title'),
                content: Text('This is the alert dialog content'),
                actions: <Widget>[
                  FlatButton(
                    child: Text('ok'),
                    onPressed: () {
                      Navigator.of(context).pop();
                      print('ok you win');
                    },
                  ),
                ],
              ),
                              );
                            });
© www.soinside.com 2019 - 2024. All rights reserved.