你好,我正在尝试用一个listview.builder在一个包装中呈现元素,但是它给了我错误constraints.hasBoundedHeight和RenderBox was not laid out: RenderShrinkWrappingViewport#fd59a relayoutBoundary=up25 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
这是我的密码:
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Wrap(
alignment: WrapAlignment.start,
crossAxisAlignment: WrapCrossAlignment.center,
direction: Axis.horizontal,
spacing: 10,
runSpacing: 15,
children: [
const CompatiblesInput(),
Expanded(
child: ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: categories.length,
itemBuilder: (context, index) {
final category = categories[index];
return _Category(title: category, index: index);
},
),
),
const _AddCategory(),
],
),
if (categories.isEmpty) CategoryProvider.nullCheck(),
if (categories.length >= 5) CategoryProvider.maxCheck(),
const SizedBox(height: 10),
],
),这给了我上面的错误。我一直在到处搜索,每个人都说要放一个shinkWrap: true,但是它在那里,仍然不起作用。有办法解决这个问题吗?
我希望你能帮助我。提前感谢!
发布于 2022-10-06 14:27:38
与其用Expanded小部件包装水平列表,不如用SizedBox包装它,如下所示:
SizedBox(
height: 20,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: categories.length,
itemBuilder: (context, index) {
final category = categories[index];
return _Category(title: category, index: index);
},
),
),或者,如果不想为列表视图设置高度,可以这样做:
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: categories.map((e) => Text('data $e')).toList(),
),
),https://stackoverflow.com/questions/73975425
复制相似问题