我正在使用ListWheelScrollView
窗口小部件对列表项产生滚轮效果,但出现上述错误。我只想在单个列表项中显示带有一些图像和文本的堆叠项,并为它们提供3D滚轮效果。
下面是我的代码->
class ExploreWidget extends StatefulWidget {
@override
State<StatefulWidget> createState() => _ExploreState();
}
class _ExploreState extends State<ExploreWidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: null,
body: Column(
children: <Widget>[
_header(),
_exploreList()
],
)
);
}
Widget _header(){
return SizedBox(
height: 200,
width: 800,
);
}
Widget _exploreList(){
return ListWheelScrollView.useDelegate(
itemExtent: 75,
childDelegate: ListWheelChildBuilderDelegate(
builder:(context,index){
return Container(
height: 500,
width: 800,
child: Stack(
children: <Widget>[
Image(image: AssetImage(
_products[index].image
)),
Text(_products[index].name,style: Style.sectionTitleWhite,),
Text('70% off',style: Style.cardListTitleWhite,),
],
),
);
}
),
);
}
}
最佳答案
由于实现了_exploreList()
小部件,因此发生了错误。这个小部件包装在Column
内部,该自身不会滚动。此外,您将返回一个无限大小的ScrollView
。因此,它抛出了上述错误。要解决此问题,请将_exploreList()
小部件包装在Flexible
中,该组件仅占用最少的可用空间来呈现和滚动。下面的工作示例代码:
body: Column(
children: <Widget>[
_header(),
Flexible(
child: _exploreList()
)
],
)
现在您应该可以正确使用
WheelScrollView
了。