如何在 Flutter 中使用 ListView 修复 'Bottom Overflowed by XXX pixels'

How to fix 'Bottom Overflowed by XXX pixels' with ListViews in Flutter

我在固定 height:300 的容器中使用 ListView(children:[]),但是当软键盘打开时,出现底部溢出错误。

bottom overflowed by 123 pixels

我是 flutter 的新手,在学习教程时,我确实包装了第 2 列小部件,一个将 2 个 TextFields() 包装在一张卡片中,另一个将高度 属性 设置为 300,包装一个 ListView () 小部件使用 'children :' 方法(如果我可以这么说,而不是 ListView.builder())。

我尝试包装在 Expandable() 小部件中,但它仍然存在。只有当高度设置为 100 时,错误才真正消失,但随后我得到一个很小的可滚动部分。有什么办法可以绕过还是这是正常反应?

注意:我也尝试了此处显示的适用于我的情况的所有解决方案,但 none 对我有用。

Flutter: how to fix bottom overflow

这是我的专栏

 return Column(
      children: <Widget>[
        NewTransaction(_addNewTransaction),
        TransactionList(_userTransaction),
      ],
    );

NewTransaction() 包含 TextFields 并且工作正常,

这是我包装 ListView 的容器(代码已简化以提高可见性)

return Container(
      height: 300,
      child: ListView(
          children: [
               Container(
                   height: 200,
               ),
               Container(
                   height: 200,
               ),
               Container(
                   height: 200,
               ),
               Container(
                   height: 200,
               ),
          ],
      ),
); 

正常情况下,软键盘打开时,不应该显示任何底部溢出错误,但会出现。在我为此遵循的教程中,它没有任何问题,但后来我得到了

bottom overflowed by 123 pixels.

错误

Here's a screenshot of the result

对于底部溢出,将容器或列包裹在 SingleChildScrollView 中 widget.Or 你可以将整个主体:属性 函数放在一个 singlechildScrollView.You 中也可以增加高度的容器。 例如:

 `return SingleChildScrollView(
    child: Container(
    height: 300,
      child: ListView(
      children: [
           Container(
               height: 200,
           ),
           Container(
               height: 200,
           ),
           Container(
               height: 200,
           ),
           Container(
               height: 200,
           ),
         ),
         ],
         ),
       );  `