如何从Listview.builder中的模型类Flutter中获取列表的INDEX



我有一个类

class Consultant {
final int id;
final String consultantFirstName;
final String consultantLastName;
final String consultantNickName;
const Consultant({
this.id,
this.consultantFirstName,
this.consultantLastName,
this.consultantNickName,
});
}
final Consultant marco = Consultant(
id: 1,
consultantFirstName: 'Marco',
consultantLastName: 'Marcello',

);
final Consultant carmela = Consultant(
id: 2,
consultantFirstName: 'Carmela',
consultantLastName: 'Maiocchi',
consultantNickName: 'Mariz Safe',

List<Consultant> consultant = [
marco,
carmela,
];

如果我把这个列表调用到ListviewBuilder中,那么一切都很好,因为INDEX进入了ListviewBuilder,问题是,如果我退出了ListViewbuilder,我就无法获得索引,并且如果我调用consultant: consultant[index];将数据传递给新的小部件,我会出错,因为没有索引以下是我如何调用Listview.builder并获得值:

ListView.builder(
padding: EdgeInsets.all(5),
itemCount: consultant.length,
itemBuilder: (BuildContext context, int index) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
GestureDetector(
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (_) => ConsultantProfile(
consultant: consultant[index],
),
),
),

但是,如果我从Listview.builder小部件中退出,并尝试调用另一个传递数据的小部件,如下所示:

appBar: AppBar(
title: Text(
'Desteeno',
style: TextStyle(fontWeight: FontWeight.w300, color: Colors.white),
),
backgroundColor: Colors.purple,
centerTitle: true,
elevation: 15,
shadowColor: Colors.black,
actions: [
IconButton(
onPressed: () {
Navigator.pop(context);
showDialog(
context: context,
builder: (context) => ContactForm(
consultant: consultant[index],
),
);
},

我得到带红色下划线的索引和错误:The getter 'index' isn't defined for the class '_ConsultantProfileState'我知道我需要从我的列表中定义索引,但我不知道是如何定义的

试试这个,它应该会有所帮助:

appBar: AppBar(
title: Text(
'Desteeno',
style: TextStyle(fontWeight: FontWeight.w300, color: Colors.white),
),
backgroundColor: Colors.purple,
centerTitle: true,
elevation: 15,
shadowColor: Colors.black,
actions: [
IconButton(
onPressed: () {
Navigator.pop(context);
showDialog(
context: context,
builder: (context) => ContactForm(
consultant: widget.consultant,
),
);

最新更新