【问题标题】:How to deal with Flutter release mode 0x0 error?Flutter 发布模式 0x0 错误如何处理?
【发布时间】: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


【解决方案1】:

如果大小为0,0return Container();

您可以使用MediaQuery 获取大小。

【讨论】:

    猜你喜欢
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2021-11-26
    • 2021-05-26
    • 2021-02-08
    • 2019-03-05
    • 1970-01-01
    相关资源
    最近更新 更多