【发布时间】:2021-05-12 04:25:38
【问题描述】:
您好,所以我在 Mockaroo 中创建了一个假数据来显示用户及其个人资料详细信息。我的目标是显示名称,点击后将重定向到个人资料详细信息。
到目前为止,这是我的代码。非常感谢您的帮助,因为我对此很陌生。
Future<List<Users>> _getUsers() async {
var data =
await http.get("https://my.api.mockaroo.com/users.json?key=8f9261404");
var jsonData = json.decode(data.body);
List<Users> users = [];
for (var u in jsonData) {
Users user = Users(
u["user_id"],
u["name"],
u["email"],
u["mobile"],
u["address"]);
users.add(user);
}
return users;
}
我上课了
class Users {
Users(
{this.id,
this.name,
this.email,
this.mobile,
this.address});
final int id;
final String name;
final String email;
final String mobile;
final String address;
}
这是我的用户界面
body: SingleChildScrollView(
child: Column(
children: <Widget>[
FutureBuilder(
future: _getUsers(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.data == null) {
return Container(child: Center(child: Text("Loading...")));
} else {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int index) {
return ListTile(
key: Key("$index"),
title: Text(snapshot.data[index].name),);
},
);
}
},
),
],
)),
同样,我的目标是在点击用户名时导航到个人资料详细信息页面。
【问题讨论】:
-
只需用 GestureDetector 包裹你的 ListTile 的标题就可以了
-
您好,您能详细说明一下吗?而且我也不认为我会使用 GestureDetector。我正在寻找类似 navigator.of.push 的东西,但我很困惑如何去做,因为当点击某个名称时,数据需要显示每个用户的正确详细信息。
-
您创建了个人资料详情页面吗?
-
你好,是的,我做到了,但我的问题是当我尝试输入
Text("Mobile No.: ${userData.mobile}")时出现错误,因为 $userData 在我粘贴上面代码的页面中初始化。如何在个人资料详情页面中使用 $userData?
标签: json flutter flutter-web