升级flutter后出现AlertDialog错误

时间:2021-03-09 00:04:56

标签: flutter android-alertdialog upgrade

我使用 AlertDialog 通知用户互联网可用性。在我使用命令 flutter upgrade 升级我的 flutter 之前,它工作正常。程序截图如下:

connectivitySubscription = Connectivity()
        .onConnectivityChanged
        .listen((ConnectivityResult connresult) {
      if (connresult == ConnectivityResult.none) {
        dialogshown = true;
        showDialog(
          context: context,
          barrierDismissible: false,
          builder: AlertDialog(
            title: Text(
              "Error",
            ),
            content: Text(
              "No Data Connection Available.",
            ),
            actions: <Widget>[
              FlatButton(
                onPressed: () => {
                  SystemChannels.platform.invokeMethod('SystemNavigator.pop'),
                },
                child: Text("Exit."),
              ),
            ],
          ),
        );
      } else if (_previousResult == ConnectivityResult.none) {
        checkinternet().then((result) {
          if (result == true) {
            if (dialogshown == true) {
              dialogshown = false;
              Navigator.pop(context);
            }
          }
        });
      }

      _previousResult = connresult;
    });

错误在

builder: AlertDialog

showDialog 函数。在升级 flutter 之前,它是 child: AlertDialog 并且工作正常,升级后显示错误。 flutter 的快速修复建议使它成为“builder: AlertDialog”,但它仍然显示错误。错误是“无法将参数类型 'AlertDialog' 分配给参数类型 'Widget Function(BuildContext)'。”。在我的完整项目中,每个 FlatButton 和 RaisedButton 上也有 Strike through 线,带有警告消息“'FlatButton' 已弃用,不应使用。改用 TextButton”。

请帮我解决这个问题。如果我需要改用我之前的flutter版本,请告诉我该怎么做? 谢谢

2 个答案:

答案 0 :(得分:1)

改变

builder: AlertDialog

builder: (_) => AlertDialog()

答案 1 :(得分:0)

  1. 使用builder: (_) => AlertDialog()

  2. 将代码中出现的任何 FlatButtonRaisedButton 更改为 TextButton 并根据需要设置属性。

可以通过打开一个终端将 Flutter(在您的情况下并不真正推荐)降级到当前频道的最后一个活动版本,并且输入

flutter downgrade