如果它是列表的最后一个索引,如何 return 一个小部件?
How to return a widget if it is the last index of a list?
如果它是方法中的最后一项,我想返回一个小部件
但我收到一个错误...尝试调用:call()
itemList.last()
? CircleAvatar(
backgroundColor: mainColor,
radius: 15,
child: Icon(Icons.done),
)
: Container()
假设您使用的是 ListView.builder()
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
List<String> item = [
'jan',
'feb',
'mar',
'apr',
'may',
'jun',
'jul',
'aug',
'sep',
'oct',
'nov',
'dec'
];
return Scaffold(
body: ListView.builder(
itemCount: item.length,
itemBuilder: (context, index) {
if (index == item.length - 1) {
return ListTile(
leading: Text('Last index reached'),
);
}
return ListTile(
leading: Text(item[index]),
);
},
),
);
}
}
你的问题太含糊了。
我假设您在列表上循环,并希望在涉及到最后一个元素时显示特定的小部件。
所以你所要做的就是检查你所在的索引是否等于列表的长度-1
即
for (int i=0;i<myList.length;i++) {
if (i == myList.length -1) {
return CircleAvatar(
backgroundColor: mainColor,
radius: 15,
child: Icon(Icons.done),
);
} else {
return Container();
}
}
如果它是方法中的最后一项,我想返回一个小部件 但我收到一个错误...尝试调用:call()
itemList.last()
? CircleAvatar(
backgroundColor: mainColor,
radius: 15,
child: Icon(Icons.done),
)
: Container()
假设您使用的是 ListView.builder()
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
List<String> item = [
'jan',
'feb',
'mar',
'apr',
'may',
'jun',
'jul',
'aug',
'sep',
'oct',
'nov',
'dec'
];
return Scaffold(
body: ListView.builder(
itemCount: item.length,
itemBuilder: (context, index) {
if (index == item.length - 1) {
return ListTile(
leading: Text('Last index reached'),
);
}
return ListTile(
leading: Text(item[index]),
);
},
),
);
}
}
你的问题太含糊了。 我假设您在列表上循环,并希望在涉及到最后一个元素时显示特定的小部件。
所以你所要做的就是检查你所在的索引是否等于列表的长度-1
即
for (int i=0;i<myList.length;i++) {
if (i == myList.length -1) {
return CircleAvatar(
backgroundColor: mainColor,
radius: 15,
child: Icon(Icons.done),
);
} else {
return Container();
}
}