Flutter Circularprogress 표시기를 숨기거나 닫는 방법 [중복]
Dec 18 2020
API가로드 될 때까지 로더를 표시하는 것이 필요한 API에서 일부 데이터를 가져 오는 중입니다. 문제는 로더가 잘 작동하지만 어떻게 닫을 수 있는지 모르겠습니다.
내 코드
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
}
}
답변
UmaizKhan Dec 18 2020 at 19:02
Stackoverflow에 오신 것을 환영합니다. :)
이 트릭 Navigator.pop (context)로이를 수행 할 수 있습니다. 이런 식으로 할 수 있다면 성공하면 숨겨야 할 것 같아요
if(data['status'].toString() == "success"){
Navigator.pop(context)
}
StefanoA. Dec 18 2020 at 19:00
Dialog
를 포함 하는를 닫으려면 CircularProgressIndicator
모든 작업이 완료된 직후 다음 코드를 사용할 수 있습니다.
Navigator.pop(context);
귀하의 예에서 구현 된 것은 다음과 같습니다.
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
}
}
}