【发布时间】:2021-08-29 02:26:01
【问题描述】:
【问题讨论】:
-
是否来自网络(如 Http.get)?
【问题讨论】:
试试这个
import "package:http/http.dart" as http;
Future<List<String>> getListOfAvatarUrl() async {
http.Response response = http.get("your uri"));
if(response.statusCode == 200) {
List<Map<String, dynamic>> items = jsonDecode(response.body)["items"];
List<Map<String,dynamic>> owners = items.map<Map<String, dynamic>>((Map<String, dynamic> item) {
return item['owner'];
}).toList();
List<String> avatarUrls = owners.map((Map<String, dynamic> owner) {
return owner["avatar_url"].toString();
}).toList();
return avatarUrls;
}
return [];
}
构建方法内部
return Scaffold(
appBar: AppBar(
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: FutureBuilder<List<String>>(
future: getListOfAvatarUrl(),
builder:
(BuildContext context, AsyncSnapshot<List<String>> snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) {
return Image.network(snapshot.data![index]);
});
}
return CircularProgressIndicator();
},
));
【讨论】: