【问题标题】: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),
      ]));
 }

屏幕上出现一个空白区域,控制台显示:

垂直视口被赋予了无限的高度。视口在 滚动方向以填充其容器。

【问题讨论】:

    标签: flutter flutter-layout


    【解决方案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 子项具有非零弹性,但传入的高度约束是无限的。”
      • 它对我有用。虽然我不明白为什么如果使用灵活,错误就会消失。
      猜你喜欢
      • 1970-01-01
      • 2019-11-05
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 2020-06-06
      • 1970-01-01
      相关资源
      最近更新 更多