导航到列表中的联系人

时间:2018-09-11 22:14:45

标签: flutter flutter-layout

我想单击特定的联系人,然后带我到他们的页面。我不确定如何使导航器正常工作。当我单击联系人列表页面名称时,我希望它带我到该人的信息的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,
    );

  }
}

1 个答案:

答案 0 :(得分:0)

我建议您看一下本教程,因为它看起来正是您要实现的目标:https://flutter.io/docs/cookbook/navigation/passing-data

该想法是在页面内重新定义MaterialRoutePage来发送特定数据。

这是例子

onTap: () {
  Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => DetailScreen(contact: contact_information),
    ),
  );
},

但是您的DetailScreen构造函数应该以联系人作为参数。

希望有帮助!!