带有 jsondecode var 输出的 Flutter 条件语句
Flutter conditional statement with output of jsondecode var
我想为 JSONdecode 的不同输出显示不同的图像。我在 01d 和 50d 之间得到 var。例如,当它给出 04d 时,我想显示 Image 'assets/night.png',对于 05d,我想显示 Image 'assets/afternoon.png' 等等。 我是一个完全的flutter初学者,我是这么想的:
var current_icon;
Future getWeather () async {
http.Response response = await http.get(Uri.parse("https://api.openweathermap.org/data/2.5/weather?q=city&appid=****"));
var results = jsonDecode(response.body);
setState(() {
this.current_icon = results['weather'][0]['icon'];
});
}
@override
void initState () {
super.initState();
this.getWeather();
}
然后把它放在我的容器里:
new Container(
height: double.infinity,
width: double.infinity,
child: new Image(
image: (What should I do here?),
fit: BoxFit.cover,
),
),
根据您的查询假设所有图像都来自资产。您可以按照您的要求制作案例:
String getImageData(String id) {
String value = '';
switch (id) {
case '01d':
value = 'assets/a.png';
break;
case '02d':
value = 'assets/b.png';
break;
default:
value = 'assets/c.png';
}
return value;
}
将下面的小部件作为容器小部件的子项传递
Widget imageWidget() {
return Image.asset(
getImageData('01d'), // pass your value here
fit: BoxFit.cover,
);
}
我想为 JSONdecode 的不同输出显示不同的图像。我在 01d 和 50d 之间得到 var。例如,当它给出 04d 时,我想显示 Image 'assets/night.png',对于 05d,我想显示 Image 'assets/afternoon.png' 等等。 我是一个完全的flutter初学者,我是这么想的:
var current_icon;
Future getWeather () async {
http.Response response = await http.get(Uri.parse("https://api.openweathermap.org/data/2.5/weather?q=city&appid=****"));
var results = jsonDecode(response.body);
setState(() {
this.current_icon = results['weather'][0]['icon'];
});
}
@override
void initState () {
super.initState();
this.getWeather();
}
然后把它放在我的容器里:
new Container(
height: double.infinity,
width: double.infinity,
child: new Image(
image: (What should I do here?),
fit: BoxFit.cover,
),
),
根据您的查询假设所有图像都来自资产。您可以按照您的要求制作案例:
String getImageData(String id) {
String value = '';
switch (id) {
case '01d':
value = 'assets/a.png';
break;
case '02d':
value = 'assets/b.png';
break;
default:
value = 'assets/c.png';
}
return value;
}
将下面的小部件作为容器小部件的子项传递
Widget imageWidget() {
return Image.asset(
getImageData('01d'), // pass your value here
fit: BoxFit.cover,
);
}