无法在列表视图构建器中测试没有大小的渲染框

Posted

技术标签:

【中文标题】无法在列表视图构建器中测试没有大小的渲染框【英文标题】:Cannot hit test a render box with no size in listview builder 【发布时间】:2021-08-17 13:19:30 【问题描述】:

我有一个 listviewbuilder,它的 listtile 看起来像这样:

当我滚动此列表时,它会滚动一点,然后完全冻结。我检查了日志并收到此错误:

E/flutter (2439): [错误:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:无法对没有大小的渲染框进行测试。

我也收到此错误:

'package:flutter/src/rendering/sliver_multi_box_adaptor.dart': 失败 断言:第 544 行 pos 12:'child.hasSize':不正确。

这是列表视图生成器的代码:

 return Padding(
                  padding: EdgeInsets.all(8),
                  child: ListView.builder(
                    itemCount: productsData.items.length,
                    itemBuilder: (_, i) => Column(
                      children: [
                        UserProductItem(
                          productsData.items[i].id,
                          productsData.items[i].title,
                          productsData.items[i].isAvailable
                           
                        ),
                        Divider(),
                      ],
                    ),
                  ),
                );

感谢您的帮助和支持。

【问题讨论】:

通过任何更改,您的小部件中有SingleChildScrollView()?它可能会导致问题。检查这个***.com/questions/62067082/… 我不使用 SingleChildScrollView 可以显示UserProductItem()? 【参考方案1】:

尝试用Container() 包裹你的Padding() 并赋予它高度。来源Here

return Container(
  height:MediaQuery.of(context).size.height,
  //...

【讨论】:

以上是关于无法在列表视图构建器中测试没有大小的渲染框的主要内容,如果未能解决你的问题,请参考以下文章

Flutter/Firestore - 在流构建器中的动态列表视图上实现“分页”

需要时以编程方式添加滚动

我的 ListView 构建器的 ListTile 小部件不可滚动并且显示渲染问题

Android 2.3 上的 webkit 渲染问题 - 一些列表视图元素的边界模糊

请帮助我无法构建相同的这个小部件,我无法使用颤振代码在列表视图中构建容器

设置与父视图相关的子视图的大小