【发布时间】:2019-06-07 09:16:27
【问题描述】:
我仅在发布模式下收到此错误:“在 performLayout() 期间引发了以下 ArgumentError:无效参数:0.0”。
我进行了一些搜索,并在此处获得了此错误的解释:https://github.com/flutter/flutter/issues/5259。
问题 5259 以这种方式解决:“我们应该强制开发人员考虑这些情况。否则我们将不得不放慢应用启动速度,以确保宽度和高度在启动时始终可用。”
但是,我是 Flutter 的新手,我没有找到任何关于开发人员需要如何考虑这些情况的信息。我需要在我的主页加载之前获取设备的宽度和高度吗?我必须延迟页面加载吗?
我禁用了一个动画,但错误仍然存在,所以问题似乎是由渲染一个简单的网格视图引起的。
这里是一些代码示例:
主要:
void main() {
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((_) {
runApp(StatusStream(child: MyApp()));
});
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyAppState();
}
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(primarySwatch: Colors.blueGrey),
home: HomePage());
}
}
首页:
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Easy DND'),
),
body: GridView.count(
crossAxisCount: 2,
childAspectRatio: 1.0,
padding: const EdgeInsets.all(15.0),
mainAxisSpacing: 4.0,
crossAxisSpacing: 4.0,
children: <Widget>[
CardOne(),
CardTwo(),
CardThree(),
CardFour(),
],
),
);
}
}
【问题讨论】:
-
如果我的回答不够,请提供更多信息和你的代码(最小复制)
-
谢谢,我现在添加了一些代码。我的错误在这里:pastebin.com/tdP1N1LC
-
尝试在
HomePage中将MediaQuery添加到build并在获得dize 0,0 时返回Container(),否则返回当前内容。抱歉,只能通过电话。 -
谢谢你,我会努力的!
标签: flutter