如何处理Flutter释放模式0x0错误?

时间:2019-01-12 20:35:16

标签: flutter

我仅在发布模式下收到此错误:“在performLayout()期间引发了以下ArgumentError:无效参数:0.0”。

我已经进行了一些搜索,并在此处找到此错误的说明:https://github.com/flutter/flutter/issues/5259

问题5259的解决方法是:“我们应该强迫开发人员考虑这些情况。否则,我们必须放慢应用程序的启动,以确保宽度和高度始终在启动时可用。”

但是,我是Flutter的新手,我找不到关于开发人员如何考虑这些情况的任何信息。在加载首页之前,我是否需要获取设备的宽度和高度?我是否需要延迟页面加载?

我有一个禁用的动画,但是错误仍然存​​在,因此问题似乎出在渲染简单的gridview上。

以下是一些代码示例:

主要:

    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(),

        ],
      ),
    );
  }
}

1 个答案:

答案 0 :(得分:2)

如果尺寸为0,0 return Container();

您可以使用MediaQuery来获取尺寸。