我使用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",但仍然显示错误。错误信息是"The argument type 'AlertDialog' can't be assigned to the parameter type 'Widget Function(BuildContext)'."。在我的完整项目中,每个FlatButton和RaisedButton都有删除线,并显示警告消息"'FlatButton' is deprecated and shouldn't be used. Use TextButton instead"。
请帮我解决这个问题。如果需要将flutter版本更改回以前的版本,请告诉我如何操作? 谢谢。