我正在堆叠小部件,我希望它是可滚动的,所以我使用了一个listview,我得到了这个错误(constraints.hasBoundedHeight':is not true flutter),我在某个地方看到listview不能放在listview中,所以我把它改成了Column,但我仍然得到了同样的错误。下面是我的代码。谢谢。
ListView homeList(){
var listView = ListView(
shrinkWrap: true,
children: <Widget>[
_imageSlider(),
Padding(
padding: EdgeInsets.only(top: 15.0, bottom: 15.0, left: 15.0),
child: Text("Trending", style: TextStyle(color: Colors.white, fontSize: 15.0),),
),
Container(
child: FutureBuilder(
future: _trendingListImages(),
builder: (BuildContext context, AsyncSnapshot async){
if(async.data == null){
return ColorLoader3(
radius: 20.0,
dotRadius: 5.0,
);
}else{
return ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemCount: async.data.length,
itemBuilder: (BuildContext context, int position) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Card(
elevation: 18.0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0))),
child: Image.network(
"http://image.tmdb.org/t/p/w500/"+async.data[position].backdropPath,
fit: BoxFit.cover,
height: 200.0,
width: 130.0,
),
clipBehavior: Clip.antiAlias,
margin: EdgeInsets.all(8.0),
),
Text(
async.data[position].title,
style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold),
)
],
);
});
}
}
),
)
],
);
return listView;}发布于 2020-04-23 09:13:14
对我来说,只要用容器包装CustomScrollView或ListView就行了。如下所示:
Container(
margin: EdgeInsets.all(5.0),
height: 295.0,
width: 333.0,
child: CustomScrollView(),
),发布于 2019-02-22 01:47:42
因此,我最终通过执行以下操作解决了此特定方法的问题:
将容器的宽度和高度封装在container;
ListView.的
代码如下:
Widget _featuredListHorizontal() {
return Container(
margin: const EdgeInsets.symmetric(vertical: 20.0),
height: 300.0,
child: FutureBuilder(
future: _trendingListImages(),
builder: (BuildContext context, AsyncSnapshot listData) {
if (listData == null) {
return ColorLoader3(
radius: 20.0,
dotRadius: 5.0,
);
} else {
return ListView.builder(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
scrollDirection: Axis.horizontal,
itemCount: listData.data.length,
itemBuilder: (BuildContext context, int position) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Card(
elevation: 18.0,
shape: const RoundedRectangleBorder(
borderRadius:
BorderRadius.all(Radius.circular(10.0))),
clipBehavior: Clip.antiAlias,
margin: const EdgeInsets.all(8.0),
child: Image.network(
"http://image.tmdb.org/t/p/w500/${listData.data[position].backdropPath}",
fit: BoxFit.cover,
height: 200.0,
width: 230.0,
),
),
Text(
listData.data[position].title,
style: TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.bold,
color: Colors.white),
),
],
);
},
);
}
},
),
);
}发布于 2022-01-03 19:49:24
*用容器包装你内部的listview,并给它一个高度。***
https://stackoverflow.com/questions/54774024
复制相似问题