Flutter Another exception was thrown: line 662 pos 12: 'child.parent == this': is not true.

自作多情 提交于 2019-12-04 05:23:58

弹出软键盘抛出异常布局内容溢出

错误日志

Another exception was thrown: 'package:flutter/src/rendering/viewport.dart': Failed assertion: line 662 pos 12: 'child.parent == this': is not true.

在这里插入图片描述

场景(已知)

类型1

我们在使用自定义dialog的时候,布局中有使用TextField TextFormField 当他们获取到了焦点,弹出软盘时,会抛出该异常。

类型2

我们在使用自定义dialog的时候,布局中有使用 多包含类型布局 如 ListView GridView 他们嵌套了TextField TextFormField 当他们获取到了焦点,弹出软盘时,会抛出该异常。

解决方案

包裹一层ScrollView 推荐使用简单的 SingleChildScrollView

伪代码

new SingleChildScrollView(
              child: TextField(
//          keyboardType: TextInputType.multiline,
//        controller: accountController,
              textAlign: TextAlign.center,
//              autofocus: true, //自动获取焦点
//              maxLength: 7,
              style: new TextStyle(fontSize: 14.0, color: Colors.black),
              maxLines: 1,
              decoration: InputDecoration(
                  contentPadding: EdgeInsets.all(2.0),
                  border: OutlineInputBorder(),
                  hintText: betItems[index].rate,
                  suffix: new ImageIcon(
                      new AssetImage("images/ic_edit_note.png"),
                      color: null,
                      size: 10.0)),
              onChanged: (String value) {
                betItems[index].rate = value;
              },
            ),
            ))
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!