[英]Column's children must not contain any null values, but null value was found at index 0
我正在开发一个 Flutter 应用程序,并且我正在尝试创建一个 InAppWebView。 在 Android 上一切正常,但在 iOS 上出现错误:
“列的子项不得包含任何 null 值,但在索引 0 处找到 null 值”。
我已经打了 flutter 清洁,flutter 构建 ios,清洁 xcode。 但仍然得到这个错误。
任何帮助表示赞赏
这是我的代码:
child: Scaffold(
appBar: AppBar(title: Text("voucherweb")),
body: Container(
child: Column(children: <Widget>[
progress == null ? Container() : (progress != 1.0)
? LinearProgressIndicator(
value: progress,
backgroundColor: Colors.grey[200],
valueColor: AlwaysStoppedAnimation<Color>(Colors.black))
: null,
Expanded(
child: Container(
child: InAppWebView(
initialUrl: "https://voucherweb.com",
initialHeaders: {},
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
debuggingEnabled: true,
useShouldOverrideUrlLoading: true),
),
shouldOverrideUrlLoading: (controller, request) async {
var url = request.url;
var uri = Uri.parse(url);
if (request.url.startsWith("https://wa.me/")) {
final newString =
url.replaceAll("https://wa.me/", "");
if (await canLaunch(url)) {
FlutterOpenWhatsapp.sendSingleMessage(
newString, "Halo, gan. Mau order voucher : ");
return ShouldOverrideUrlLoadingAction.CANCEL;
}
}
return ShouldOverrideUrlLoadingAction.ALLOW;
},
onWebViewCreated: (InAppWebViewController controller) {
webView = controller;
},
onLoadStart:
(InAppWebViewController controller, String url) {},
onLoadStop:
(InAppWebViewController controller, String url) {},
onProgressChanged:
(InAppWebViewController controller, int progress) {
setState(() {
this.progress = progress / 100;
});
}),
),
),
]))));
您正在将Column's
其中一个子级设置为null
,请考虑使用SizedBox()
或Container()
代替:
我使用您的代码添加了一个示例:
child: Scaffold(
appBar: AppBar(title: Text("voucherweb")),
body: Container(
child: Column(children: <Widget>[
progress == null ? Container() : (progress != 1.0)
? LinearProgressIndicator(
value: progress,
backgroundColor: Colors.grey[200],
valueColor: AlwaysStoppedAnimation<Color>(Colors.black))
// new line
: SizedBox(),
Expanded(
child: Container(
child: InAppWebView(
initialUrl: "https://voucherweb.com",
initialHeaders: {},
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
debuggingEnabled: true,
useShouldOverrideUrlLoading: true),
),
shouldOverrideUrlLoading: (controller, request) async {
var url = request.url;
var uri = Uri.parse(url);
if (request.url.startsWith("https://wa.me/")) {
final newString =
url.replaceAll("https://wa.me/", "");
if (await canLaunch(url)) {
FlutterOpenWhatsapp.sendSingleMessage(
newString, "Halo, gan. Mau order voucher : ");
return ShouldOverrideUrlLoadingAction.CANCEL;
}
}
return ShouldOverrideUrlLoadingAction.ALLOW;
},
onWebViewCreated: (InAppWebViewController controller) {
webView = controller;
},
onLoadStart:
(InAppWebViewController controller, String url) {},
onLoadStop:
(InAppWebViewController controller, String url) {},
onProgressChanged:
(InAppWebViewController controller, int progress) {
setState(() {
this.progress = progress / 100;
});
}),
),
),
]))));
progress == null ? Container() : (progress != 1.0)
? LinearProgressIndicator(
value: progress,
backgroundColor: Colors.grey[200],
valueColor: AlwaysStoppedAnimation<Color>(Colors.black))
: Container(),
请使用此代码 null 不是小部件,这就是您收到此错误的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.