如何在库比蒂诺皮克中显示来自服务器的 json 数据



我有一个类似的问题。

如何使用 GridView 从服务器放置 JSON 数据 --Flutter

我必须在库比蒂诺皮克中显示 JSON 数据。 但是我不知道如何设法将数据放在该小部件上。

我想在页面首次初始化时保留 JSON 数据。 我想知道如何保存Future数据并将其转换为选择器小部件。

按下按钮时。调用以下方法。 我想在CupertinoPicker上展示seasons(未来(。

cupertinoModalPopup(){
showModalBottomSheet(
context: context,
builder: (BuildContext context){
return CupertinoPicker(
onSelectedItemChanged: (int index){
setState(() {
_pickerSelectedIndex = index;
});
},
itemExtent: 32.0,
children: seasons.map((season) => Text(season)).toList(),
scrollController: FixedExtentScrollController(initialItem: _pickerSelectedIndex)
);
});
[
{"id":1,"season_end":"1999/01","season_name":"First","season_start":"1999/08"}, 
{"id":2,"season_end":"1999/07","season_name":"Second","season_start":"1999/02"}, 
{"id":3,"season_end":"2000/01","season_name":"Third","season_start":"1999/08"}, 
{"id":4,"season_end":"2000/07","season_name":"Forth","season_start":"2000/02"}
]

请给我一些建议。

谢谢。

最后,我用以下代码编写了小部件。

cupertinoModalPopup(){
showModalBottomSheet(
context: context,
builder: (BuildContext context){
return FutureBuilder(
future: seasons,
builder: (BuildContext context, AsyncSnapshot <List<Season>> snapshot){
if(snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasError) {
return Text('${snapshot.error}');
}
if (!snapshot.hasData) {
return Text('No Data Found');
}
return CupertinoPicker(
onSelectedItemChanged: (int index){
setState(() {
_seasonSelectedIndex = index;
_seasonSelected = snapshot.data[index].season_name;
});
},
itemExtent: 32.0,
children: snapshot.data.map((season) => Text(season.season_name)).toList(),
scrollController: FixedExtentScrollController(initialItem: _seasonSelectedIndex)
);
}else{
return const CircularProgressIndicator();
}
},
);
},
);
}

成功了!!!谢谢。

最新更新