Как закрыть диалоговое окно предупреждения при нажатии вне его

У меня есть диалоговое окно с предупреждением, которое я хочу закрыть, если щелкнуть за его пределами, я знаю, что это поведение по умолчанию диалоговых окон предупреждений при трепете, но я не знаю, в чем проблема, мешающая его закрытию при нажатии снаружи.

Я попытался использовать для параметра "" По умолчанию "значение" истина ", но все равно это не работает.

This is my dialog : 

termsAndConditionsDialog(BuildContext context) {

    AlertDialog alert = AlertDialog(
      title:  Text("Terms and Conditions", style: TextStyle(fontSize: 18, color: AppColors.accentColor),),
      content: Text(
        generalSettings.policyForCustomer,
        style: TextStyle(fontSize: 16),
      ),

    );


    // show the dialog
    showDialog(
      barrierDismissible: true,
      context: context,
      builder: (BuildContext context) {
        return alert;
      },
    );
  }


and this is how I call it from button's onPressed : 
 termsAndConditionsDialog(context);

2 ответа

Вызовите это onPressed или onTap:

void showMessage(){
  showDialog(
    context:context,
    builder: (Buildcontext context){
       return AlertDialog(
         backgroundColor: Colors.transparent,
         content: Container(
            width: MediaQuery.of(context).size.width,
            height: 100,
            alignment: AlignmentDirectional.center
            child: Text("TRIAL",style: TextStyle(color: Colors.white))
        )
      )
    }
  )
}

Пользовательский метод оповещения

typedef ResponseCallbackValueLess = void Function();

showAlertDialogWithOkButton(
  BuildContext context,
  String message,
  String heading,
  String buttonAcceptTitle,
  ResponseCallbackValueLess callback) {
Widget continueButton = FlatButton(
  child: Text(buttonAcceptTitle),
  onPressed: () {
    callback();
  },
);

называется, как показано ниже:

showAlertDialogWithOkButton(context,
                          'No items found in your cart.',
                          "app name", "Ok", dismissAlert(context));

dismissAlert(context){
    Navigator.pop(context);
  }
Другие вопросы по тегам