垂直视口被赋予了无限的高度错误[重复]
Posted
技术标签:
【中文标题】垂直视口被赋予了无限的高度错误[重复]【英文标题】:Vertical viewport was given unbounded height error [duplicate] 【发布时间】:2019-01-15 08:49:42 【问题描述】: @override
Widget build(BuildContext context)
return Column(
children: <Widget>[
new Text("Some text"),
ListView()
],
);
Widget ListView()
return ListView(
padding: EdgeInsets.symmetric(vertical: 8.0),
children: Item(),
);
List<Item> Item()
return list
.map((item) => Item(text: item))
.toList();
class Item extends ListTile
Item(String text, GestureTapCallback onTap)
: super(subtitle: Column(children: <Widget>[
Text(text),
]));
屏幕上出现一个空白区域,控制台显示:
垂直视口被赋予了无限的高度。视口在 滚动方向以填充其容器。
【问题讨论】:
【参考方案1】:最好的解决方案是使用灵活,但如果你想给它一个精确的高度,你应该像这样使用容器:
Widget ListView()
return Container(
height:100.0,
child: ListView(
padding: new EdgeInsets.symmetric(vertical: 8.0),
children: Item()));
【讨论】:
【参考方案2】:将 ListView 包装在 Flexible 中将使其工作。
Widget ListView()
return new Flexible(child: new ListView(
padding: new EdgeInsets.symmetric(vertical: 8.0),
children: Item()));
【讨论】:
我还要补充一点,如果您使用的是Padding
小部件,您应该将它放在Flexible
小部件中。
它不起作用,我得到“RenderFlex 子项具有非零弹性,但传入的高度约束是无限的。”
它对我有用。虽然我不明白为什么如果使用灵活,错误就会消失。以上是关于垂直视口被赋予了无限的高度错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
垂直视口被赋予了无限的高度。 RenderBox 未布置:RenderViewport#34d12 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UP