我如何在从 api 获取图像时获得加载屏幕?
How do i get a loading screen while i fetch images from api?
I want a loading screen when i shake screen and 10 more images loads from api.
void initState() {
super.initState();
_shakePlugin = FlutterShakePlugin(
onPhoneShaken: (){
//do stuff on phone shake
setState(() {
count=count+10;
});
},
)..startListening();
}
Future<String> getjsondata() async {
try {
var response = await http.get(
'https://api.unsplash.com/search/photos?per_page=${count}&client_id=TcAQEO3JoMG90U7Rl-YUiDo1x9XbZukzMOMQhxUVCV4&query=${_search}');
setState(() {
var converted = json.decode(response.body);
data = converted['results'];
});
} catch (e) {}
return 'success';
}
Whenever i increment the count by 10,i need a loading widget to show until it fetches the images from api.
使用FutureBuilder
处理不同的快照条件和连接状态以显示不同的小部件
通过以下代码使用 FutureBuilder
FutureBuilder(
future: getjsondata(),
builder: (_, dataSnapshot) {
if (dataSnapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else {
return Container(.....) // Show your images here & take data using dataSnapshot.data
}
},
),
I want a loading screen when i shake screen and 10 more images loads from api.
void initState() {
super.initState();
_shakePlugin = FlutterShakePlugin(
onPhoneShaken: (){
//do stuff on phone shake
setState(() {
count=count+10;
});
},
)..startListening();
}
Future<String> getjsondata() async {
try {
var response = await http.get(
'https://api.unsplash.com/search/photos?per_page=${count}&client_id=TcAQEO3JoMG90U7Rl-YUiDo1x9XbZukzMOMQhxUVCV4&query=${_search}');
setState(() {
var converted = json.decode(response.body);
data = converted['results'];
});
} catch (e) {}
return 'success';
}
Whenever i increment the count by 10,i need a loading widget to show until it fetches the images from api.
使用FutureBuilder
处理不同的快照条件和连接状态以显示不同的小部件
通过以下代码使用 FutureBuilder
FutureBuilder(
future: getjsondata(),
builder: (_, dataSnapshot) {
if (dataSnapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else {
return Container(.....) // Show your images here & take data using dataSnapshot.data
}
},
),