Flutter bagaimana saya bisa menyembunyikan atau menutup indikator Circularprogress [duplikat]
Dec 18 2020
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 Dec 18 2020 at 19:02
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. Dec 18 2020 at 19:00
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
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'