Flutter错误信息搜集

1.Incorrect use of ParentDataWidget.

在这里插入图片描述

  • 报错原因:Expanded、Flexible等组件,在“Container、Padding、Stack”组件中导致的
  • 解决方案: Expanded、Flexible只在Row、Column等组件内,不在其他组件内使用。

2. Vertical viewport was given unbounded height.

在这里插入图片描述

这个问题主要是ListView.builder出现的问题,如果是简单用的话,会出现这个问题的话,这时候,我们只需要在ListView.builder加入shrinkWrap: true,,如下图:

  • shrinkWrap :shrinkWrap默认为false,如果滚动视图设置的是false,那么内容会在滚动方向上尺寸延伸到最大,如果在滚动方向上没有边界约束,那么shrinkWrap必须设置为true,否则没有边界约束,以为着列表的高度无线,这是不可以的
  • 如果不设置shrinkWrap属性,则ListView将与其父对象一样大。
  • 如果将其设置为true,则列表将包装其内容,并与其子元素允许的大小一样大。
      return Column(
        children: <Widget>[
          ListView.builder(
              itemCount: sourceDataComments.length,
              itemBuilder: _buildCommentsRow,
              shrinkWrap: true,
          ),
        ],
      );

3. Horizontal viewport was given unbounded width.

在这里插入图片描述

原因: 不知道ListView的高度而抛出此异常

4. A RenderFlex overflowed by 90 pixels on the right

在这里插入图片描述

  • 错误原因: 空间超出了屏幕尺寸,导致报错。表现为应用并没有闪退,只是UI显示会与预期不符。
  • 该错误是因为我在Row空间中添加的子元素宽度超过了Row的

5. No Material widget found

出现这个错误是因为你用到的组件要求祖先组件必须包含Material,比如:Card,Dialog,Drawer,Scaffold,这个时候你只需要通过前面那些Material组件包装下你自己的组件就可以了。

可以参考如下示例代码:
如果直接返回new Column报错的话(说明祖先组件没有包含Material类型),你可以在外层套一个Scaffold组件。

@override
Widget build(BuildContext context) {
  return new Scaffold( //Material组件
    body: new Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        new TextField(
            controller: _controller,
            decoration: new InputDecoration(
                hintText: 'Type something',
            ),
        ),
        new RaisedButton(
            onPressed: () {
              showDialog(
                  context: context,
                  child: new AlertDialog(
                      title: new Text('你好'),
                      content: new Text(_controller.text),
                  ),
              );
            },
            child: new Text('完成'),
        ),
      ],
    ),
  );
}

6. A RenderFlex overflowed by xx pixels on the bottom

该错误的原因高度不够, 一般是在使用不能够滚动的组件Colum时发生。

解决方案:

  1. 可以在Colum的外层包裹一层滑动组件,例如:SingleChildScrollView(相当于IOS中ScrollView)
  2. 可以使用Expand(占剩下的空间)组件来包括其中的部分子组件,这样达到不会超出高度的目的
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值