你可以使用ListView.builder
. 这是一些示例代码:
class MyWidgetListViewBuilder extends StatelessWidget {
final int widgetCount;
MyWidgetListViewBuilder(this.widgetCount);
@override
Widget build(BuildContext context) {
return ListView.builder(
itemCount: widgetCount,
itemBuilder: (context, index) {
return WidgetA();
},
);
}
}
class WidgetA extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text('I appear as often as necessary');
}
}
当然也可以List<WidgetA>
使用单独的函数来构建:
class MyWidgetListView extends StatelessWidget {
final int widgetCount;
MyWidgetListView(this.widgetCount);
List<WidgetA> _buildWidgetAList() {
final widgetAList = <WidgetA>[];
for (var i = 0; i < widgetCount; i++) {
widgetAList.add(WidgetA());
}
return widgetAList;
}
@override
Widget build(BuildContext context) {
return ListView(children: _buildWidgetAList());
}
}
这个ListView
答案描述了和之间的区别ListView.builder
。