Flutter bagaimana saya bisa menyembunyikan atau menutup indikator Circularprogress [duplikat]
Saya hanya mengambil beberapa data dari API yang saya butuhkan adalah menampilkan loader sampai API dimuat. Masalahnya adalah loader berfungsi dengan baik tetapi saya tidak tahu bagaimana cara menutupnya.
Kode saya
Future<http.Response> _trySubmit3() async {
final isValid2 = _formKey3.currentState.validate();
FocusScope.of(context).unfocus();
if (isValid2) {
showDialog(
context: context,
builder: (BuildContext context) {
return Center(child: CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>(Color(0xff00abb5)),
),);
});
print(smsOTP.text);
print(userConfirmPassword.text);
var url = '123/set_password.php?email=${userEmail.text}&password=${userConfirmPassword.text}';
print(url);
http.Response res = await http.get(url,
headers: <String, String>{
'token': 'my token'
},
);
var data = json.decode(res.body.toString());
print(data);
print(data['status']);
if(data['status'].toString() == "success"){
// I need to close the loader here
}
}
Jawaban
UmaizKhan
Selamat datang di Stackoverflow :)
Anda dapat melakukan ini dengan trik ini Navigator.pop (konteks). Saya pikir Anda perlu bersembunyi ketika sukses jika kondisi Anda dapat melakukan seperti ini
if(data['status'].toString() == "success"){
Navigator.pop(context)
}
StefanoA.
Jika Anda ingin menutup Dialog
yang berisi CircularProgressIndicator
, segera setelah semua operasi selesai, Anda dapat menggunakan kode berikut:
Navigator.pop(context);
Yang, diimplementasikan dalam contoh Anda, akan terlihat seperti:
Future<http.Response> _trySubmit3() async {
final isValid2 = _formKey3.currentState.validate();
FocusScope.of(context).unfocus();
if (isValid2) {
showDialog(
context: context,
builder: (BuildContext context) {
return Center(child: CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>(Color(0xff00abb5)),
),);
});
print(smsOTP.text);
print(userConfirmPassword.text);
var url = '123/set_password.php?email=${userEmail.text}&password=${userConfirmPassword.text}';
print(url);
http.Response res = await http.get(url,
headers: <String, String>{
'token': 'my token'
},
);
var data = json.decode(res.body.toString());
print(data);
print(data['status']);
if(data['status'].toString() == "success"){
Navigator.pop(context); // closing the Dialog with the CircularProgressIndicator
}
}
}
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'