[英]for loop only return first element of List inside ListView.builder but it works for in build Widget
我有一个在 Build 下的列表,它适用于 ListView.builder 之外,但 ListView.builder 内部的循环只会返回第一个元素,为什么? 感谢您的建议!
Widget build(BuildContext context) {
List eventList = [
TimelineModel(
eventTitle: 'first',),
TimelineModel(
eventTitle: 'second'),
];
return GetBuilder<TimelineController>(builder: (controller) {
for(var e in eventList){
print('???${e.eventTitle}'); // here loops work
}
return Scaffold(
body: Container(
child: Stack(
children: [
ListView.builder(
itemBuilder: (context, index) {
for (var event in eventList)
print('------${event.eventTitle}------'); // here loop will only return first element
),
],
),
),
);
}
);
您可能想像这样使用它:
ListView.builder(
itemCount: eventList.length,
itemBuilder: (context, index) {
print('------${eventList[index].eventTitle}------');
return Text(eventList[index].eventTitle);
}
),
在ListView.builder()
中添加itemCount
Widget build(BuildContext context) {
List eventList = [
TimelineModel(
eventTitle: 'first',),
TimelineModel(
eventTitle: 'second'),
];
return GetBuilder<TimelineController>(builder: (controller) {
for(var e in eventList){
print('???${e.eventTitle}'); // here loops work
}
return Scaffold(
body: Container(
child: Stack(
children: [
ListView.builder(
itemCount: eventList.length,
itemBuilder: (context, index) {
for (var event in eventList)
print('------${event.eventTitle}------'); // here loop will only return first element
),
],
),
),
);
}
);
试试下面的代码:
ListView.builder(
itemCount: eventList.length,
itemBuilder: (context, index) {
final event = eventList[index];
print('------${event.eventTitle}------');
return Text(event.eventTitle);
},
),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.