我想单击特定的联系人,然后带我到他们的页面。我不确定如何使导航器正常工作。当我单击联系人列表页面名称时,我希望它带我到该人的信息的viewContact页面。
class ContactList extends StatelessWidget {
final List<Contact> _contacts;
ContactList(this._contacts);
@override
Widget build(BuildContext context) {
return new ListView.builder(
padding: new EdgeInsets.symmetric(vertical: 8.0),
itemBuilder: (context, index) {
return new _ContactListItem(_contacts[index], onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => viewContact()),
});
},
itemCount: _contacts.length,
);
}
}
我想到的其他选择:
class ContactList extends StatelessWidget {
final List<Contact> _contacts;
ContactList(this._contacts);
@override
Widget build(BuildContext context) {
return new ListView.builder(
padding: new EdgeInsets.symmetric(vertical: 8.0),
itemBuilder: (context, index) {
return new _ContactListItem(_contacts[index]);
Navigator.push(context, MaterialPageRoute(builder: (context) => viewContact())
);
},
itemCount: _contacts.length,
);
}
}
答案 0 :(得分:0)
我建议您看一下本教程,因为它看起来正是您要实现的目标:https://flutter.io/docs/cookbook/navigation/passing-data
该想法是在页面内重新定义MaterialRoutePage
来发送特定数据。
这是例子
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailScreen(contact: contact_information),
),
);
},
但是您的DetailScreen
构造函数应该以联系人作为参数。
希望有帮助!!