在将数组列表集成到 Flutter GridView 中需要帮助
Need help in integrating array list into Flutter GridView
以前在AS里用过RecyclerView,最近开始学Flutter
我一直在四处寻找,似乎找不到一个内聚的 document/reference/example 来允许数组列表出现在 GridView 中。
List<Test> fbToJson(gdata) {
var tojson = json.decode(gdata).cast<Map<String, dynamic>>();
return tojson.map<Test>((json) => Test.fromJson(json)).toList();
}
class Test {
String imageUrl;
String name;
Test({this.imageUrl,this.name});
factory Test.fromJson(Map<String, dynamic> json) {
return Test(
imageUrl: json['imageUrl'] as String,
name: json['name'] as String
);
}
}
我已经能够通过 Navigator 将上面的列表数组传递给另一个 activity class。
我的困惑是因为这是一个列表数组,我需要遍历它以显示列出的值,例如。
for(var i in fbdata){
var myname = i.name;
}
如果我想同时显示名称和 urlimage,我找不到任何 doc/resource 来帮助说明如何将其集成到 gridview。
提前致谢。
使用GridView.builder
GridView.builder(
itemCount: fbdata.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 3 / 2,
crossAxisSpacing: 10,
mainAxisSpacing: 10),
itemBuilder: (ctx, index) {
return Column(
children: <Widget>[
Text(fbdata[index].name),
Text(fbdata[index].imageUrl),
],
);
})
以前在AS里用过RecyclerView,最近开始学Flutter
我一直在四处寻找,似乎找不到一个内聚的 document/reference/example 来允许数组列表出现在 GridView 中。
List<Test> fbToJson(gdata) {
var tojson = json.decode(gdata).cast<Map<String, dynamic>>();
return tojson.map<Test>((json) => Test.fromJson(json)).toList();
}
class Test {
String imageUrl;
String name;
Test({this.imageUrl,this.name});
factory Test.fromJson(Map<String, dynamic> json) {
return Test(
imageUrl: json['imageUrl'] as String,
name: json['name'] as String
);
}
}
我已经能够通过 Navigator 将上面的列表数组传递给另一个 activity class。
我的困惑是因为这是一个列表数组,我需要遍历它以显示列出的值,例如。
for(var i in fbdata){
var myname = i.name;
}
如果我想同时显示名称和 urlimage,我找不到任何 doc/resource 来帮助说明如何将其集成到 gridview。
提前致谢。
使用GridView.builder
GridView.builder(
itemCount: fbdata.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 3 / 2,
crossAxisSpacing: 10,
mainAxisSpacing: 10),
itemBuilder: (ctx, index) {
return Column(
children: <Widget>[
Text(fbdata[index].name),
Text(fbdata[index].imageUrl),
],
);
})