Vertical viewport was given unbounded height
问题描述:
在Flutter开发中遇到:Vertical viewport was given unbounded height,意思是:垂直视窗应该是无限高的。
问题分析:
这个问题产生的原因是ListView.builder出现的高度问题,有两种解决方案。如下所示:
(1)需要在ListView.builder加入shrinkWrap: true,如下所示:
ListView(
shrinkWrap: true,
children: navs,
);
(2)使用Expanded包裹。Column里面嵌套Column、ListView、EasyRefresh等具有无限延展性控件的时候,每一层都需要用Expanded包裹,漏掉一层都不行。只要每层可无限延展的控件外面都套上Expanded,允许他们最大值延展,那就没问题。此时不需要shrinkWrap: true,也可以完美显示出来。
listview控件
widgetListView(){
return ListView.builder(
scrollDirection: Axis.vertical,
itemCount: 20,
itemBuilder: (context,i){
return Container(child: Text('test$i'),width: 100,height: 100,color: Colors.white,);
},
);
};
多层嵌套实验Column、EasyRefresh、ListView
Column( //一层
children:<Widget>[
Expanded(child:
Column( //两层
children: <Widget>[
Expanded(
child:EasyRefresh( //三层
child:widgetListView() //四层,这层的Expanded在EasyRefresh内部实现了
)
)
],
)
)
]
);