#android #flutter #firebase-authentication #progress-bar
# #Android #трепетание #firebase-аутентификация #индикатор выполнения
Вопрос:
Я создаю приложение, и я хотел бы показать индикатор выполнения, пока пользователь ожидает входа в систему на платформе.
Как я могу добавить индикатор выполнения в виде круга во время ожидания?
Future<void> validateAndSubmit() async {
if (validateAndSave()) {
try {
final Auth auth = await AuthFactory.getAuth();
final String userId = await auth
.signInWithEmailAndPassword(_email, _password)
.whenComplete(() =>
Navigator.of(context).popAndPushNamed(RootPage.routeName));
print('Signed In:$userId');
} catch (e) {
print('Error:$e');
print(e.toString());
}
}
}
Ответ №1:
Поскольку вы используете future, лучшим способом было бы управлять a CircularProgressIndicator()
с помощью логического значения внутри вашего метода следующим образом:
Future<void> validateAndSubmit() async {
setState(( {
_isLoading = true;
});
if (validateAndSave()) {
try {
final Auth auth = await AuthFactory.getAuth();
final String userId = await auth
.signInWithEmailAndPassword(_email, _password)
.whenComplete(() =>
{
setState(() {
_isLoading = false;
});
Navigator.of(context).popAndPushNamed(RootPage.routeName));
}
print('Signed In:$userId');
} catch (e) {
print('Error:$e');
print(e.toString());
}
}
}
а затем где-нибудь в вашем дереве виджетов:
_isLoading ? CircularProgressIndicator() : Other widget...