gpt4 book ai didi

flutter - 如何在 flutter 中将嵌套的 JSON api 响应显示为 GridView ?

转载 作者:IT王子 更新时间:2023-10-29 07:21:20 26 4
gpt4 key购买 nike

我正在使用 Flutter 构建应用程序。我想显示一个 GridView ,在该 GridView 中我想要一个数据 ListView 。我有一个 JSON Api,它的响应是这样的。

它是一个对象数组。我想在 gridview 中显示对象的标题和价格属性,并在该 gridview 的 ListView 中显示服务属性。我正在使用 Futurebuilder。我很困惑在 Futurebuilder 中我应该使用 gridview.count 还是 gridviewbuilder。要实现 ListView ,我应该在 gridviewbuildergridview.count 下使用 ListViewbuilder 吗?还有其他想法可以实现这一目标吗?

     "title": "EXPRESS 2",
"price": 500,
"services": [
{
"_id": "5ca07706e8f4c521f0010567",
"serviceId": "5c9081e3ae535e0c549fa0fe",
"name": "DENT SECTION"
},
{
"_id": "5ca07706e8f4c521f0010566",
"serviceId": "5c90820aae535e0c549fa100",
"name": "ELECTRICAL SYSTEM"
}
],
"id": "5ca07706e8f4c521f0010565"
},```







最佳答案

GridView.count:创建一个可滚动的二维小部件数组,在横轴上具有固定数量的图 block

GridView.builder:创建可滚动的二维小部件数组,这些小部件按需创建。

所以使用 GridView.builder

并尝试使用此代码绑定(bind)您的数据

 GridView.builder(
shrinkWrap: true,
itemCount: itemDataList.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2,childAspectRatio: 0.6),
itemBuilder: (BuildContext context, int index){
return Card(
elevation: 6.0,
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Center(
child: Text(itemDataList[index].title),
),

displayItem("id ", itemDataList[index].id),
displayItem("price ", itemDataList[index].price.toString()),
ListView.builder
(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: itemDataList[index].services.length,
itemBuilder: (BuildContext ctxt, int indx) {
return new Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Divider(
height: 2,
color: Colors.black,
),
displayItem("_Id", itemDataList[index].services[indx].sId),
displayItem("Service Id", itemDataList[index].services[indx].serviceId),
displayItem("Service name", itemDataList[index].services[indx].name),
],
);
}
),
],
),
);
},
),
)



Widget displayItem(String key, String value){
return Padding(
padding: const EdgeInsets.all(2.0),
child: Text('$key : $value', style: TextStyle(fontSize: 11),),
);
}

关于flutter - 如何在 flutter 中将嵌套的 JSON api 响应显示为 GridView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55482804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com