天天看点

Flutter系列之showDialog拦截返回键

Flutter中弹出对话框是使用showDialog函数,如果想拦截返回键,不想其点击返回键的时候消失,

就要嵌套一层WillPopScope,示例代码如下:

showDialog(
      context: context,
      barrierDismissible: false,//点击外部遮罩区域是否可以关闭dialog
      builder: (context) {
        return WillPopScope(
          onWillPop: () async => false,//关键代码
          child: Dialog(
            backgroundColor: Colors.transparent,
            insetPadding: EdgeInsets.zero,
            child: child,
          ),
        );
      },
    );
           

在Dialog的外面再嵌套一层WillPopScope,并将onWillPop设为false即可