我使用 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版本,请告诉我该怎么做? 谢谢
答案 0 :(得分:1)
改变
builder: AlertDialog
到
builder: (_) => AlertDialog()
答案 1 :(得分:0)
使用builder: (_) => AlertDialog()
将代码中出现的任何 FlatButton
和 RaisedButton
更改为 TextButton
并根据需要设置属性。
您可以通过打开一个终端将 Flutter(在您的情况下并不真正推荐)降级到当前频道的最后一个活动版本,并且输入
flutter downgrade