如何从 Listview.builder 中获取模型类 Flutter 的列表索引
Posted
技术标签:
【中文标题】如何从 Listview.builder 中获取模型类 Flutter 的列表索引【英文标题】:How to get INDEX of the List from a Model Class Flutter out from Listview.builder 【发布时间】:2021-03-14 11:22:41 【问题描述】:我有课
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'
我知道我需要从我的列表中定义索引,但我不知道如何
【问题讨论】:
添加更多代码,例如您将如何使用它... 我编辑了代码并添加了一些内容。 您从哪里获得此代码中出现的顾问索引?? 索引来自班级顾问 我的意思是您如何获得前 1,2,3 或 4 的索引,无论如何您从顾问那里获得想要使用的项目 【参考方案1】:试试这个,应该会有帮助:
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,
),
);
【讨论】:
以上是关于如何从 Listview.builder 中获取模型类 Flutter 的列表索引的主要内容,如果未能解决你的问题,请参考以下文章
如何为 ListView.builder 加载数据以从提供者的数据构建
如何从http POST请求结果颤振在listview builder上显示数据
如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?
从 ListView.builder 中返回自定义卡片和关闭(添加和删除到列表视图)