#android #ios #flutter
#Android #iOS #flutter
Вопрос:
Я просто заново ввожу и изучаю flutter на Android. Я хочу спросить о диалоговом окне ProgressHUD.
Как я могу закрыть / закрыть диалоговое окно ProgressHUD программно? Потому что в документации он использовал onPress для закрытия диалогового окна. Я хочу программно закрыть или закрыть диалоговое окно без onPress.
Спасибо.
Библиотека / пакет диалогового окна ProgressHUD ссылка ниже:
https://pub.dartlang.org/packages/progress_hud#-readme-tab-
Приведенный ниже код инициирует диалоговое окно:
bool _loading = true;
@override
void initState() {
super.initState();
_progressHUD = new ProgressHUD(
backgroundColor: Colors.black12,
color: Colors.white,
containerColor: Colors.blue,
borderRadius: 5.0,
text: 'Loading...',
);
//If I put in this line, there have an error,
//the state is null, the dismiss() function called on null.
_progressHUD.state.dismiss();
}
Вы можете увидеть, что если я введу функцию _progressHUD.state.dismiss();
in initState()
, появится ошибка, которая заключается в том, что состояние равно нулю, функция dismiss() вызывается по нулевой ссылке.
Приведенный ниже код используется для закрытия диалогового окна:
_progressHUD.state.dismiss();
Ответ №1:
Вы отклоняете прогресс в состоянии инициализации, когда виджет не полностью собран. Итак, отображается ошибка состояния null. Чтобы использовать его в состоянии инициализации или когда состояние установлено не полностью, вы можете использовать обратный вызов postframe.
WidgetsBinding.instance.addPostFrameCallback((_) {
_progressHUD.state.dismiss();
});