Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vertical viewport was given unbounded height error [duplicate]

Tags:

 @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),       ]));  } 

A blank space appears on the screen and the console says:

Vertical viewport was given unbounded height. Viewports expand in the scrolling direction to fill their container.

like image 511
jaede Avatar asked Aug 08 '18 07:08

jaede


People also ask

How do I fix vertical viewport was given unbounded height?

To fix the vertical viewport was given unbounded height error, you can either set the shrinkWrap property of the ListView widget to true or wrap it inside the Expanded/SizedBox widget (with height property).

What is viewport flutter?

Viewport is the visual workhorse of the scrolling machinery. It displays a subset of its children according to its own dimensions and the given offset. As the offset varies, different children are visible through the viewport.

What is ListView builder in flutter?

ListView is a very important widget in a flutter. It is used to create the list of children But when we want to create a list recursively without writing code again and again then ListView. builder is used instead of ListView. ListView. builder creates a scrollable, linear array of widgets.


2 Answers

Wrapping ListView inside Flexible will make it work.

Widget ListView() { return new Flexible(child: new ListView(     padding: new EdgeInsets.symmetric(vertical: 8.0),     children: Item())); } 
like image 98
jaede Avatar answered Oct 26 '22 12:10

jaede


The best solution is to use Flexible, but if you want to give it an exact height you should use Container like this:

    Widget ListView() {     return Container(        height:100.0,        child: ListView(         padding: new EdgeInsets.symmetric(vertical: 8.0),         children: Item()));     } 
like image 32
dmarquina Avatar answered Oct 26 '22 14:10

dmarquina