Как создать диалог прогресса при выполнении задачи и после завершения диалога задачи должен быть закрыт? - PullRequest
2 голосов
/ 11 апреля 2019

Как добавить индикатор выполнения?

После нажатия кнопки мне нужно отобразить индикатор выполнения при выполнении задания и после его завершения, диалог должен быть закрыт и перейти к следующемустраница при успешном входе.

в поднятой кнопке:

onPressed: () async {
  (isOffline)
  ? showSnackBar(context)
  : checkingValidation(usernameController, context, _url);
}


checkingValidation(TextEditingController usernameController, BuildContext context, String _url) async {
if(....){
...
}else{
    Navigator.push(
       context,
       MaterialPageRoute(
       builder: (context) => HomePage()))
}

1 Ответ

1 голос
/ 11 апреля 2019

Вы должны использовать Stack, и внутри этого диалогового окна использовать оповещение, как вы хотите. Добавьте флаг, например bool showProgress, всякий раз, когда вам нужно, чтобы диалоговое окно с предупреждением о ходе выполнения отображалось или скрывалось, просто установите showProgress=true или showProgress=false соответственно в setState, чтобы показать или скрыть виджет диалогового окна предупреждения.

или просто используйте этот шаблон, который я создал.

  static showProgressDialog(BuildContext context, String title) {
    try {
      showDialog(
          context: context,
          barrierDismissible: false,
          builder: (context) {
            return AlertDialog(
              content: Flex(
                direction: Axis.horizontal,
                children: <Widget>[
                  CircularProgressIndicator(),
                  Padding(padding: EdgeInsets.only(left: 15),),
                  Flexible(
                      flex: 8,
                      child: Text(
                        title,
                        style: TextStyle(
                            fontSize: 16, fontWeight: FontWeight.bold),
                      )),
                ],
              ),
            );
          });
    } catch (e) {
      print(e.toString());
    }
  }

когда хочешь показать это просто позвони AppUtils.showProgressDialog(context, "Please wait");

когда вы выполнили задание, просто позвоните Navigator.pop(context);

Вы можете создать класс как AppUtils и поместить этот шаблон в класс, чтобы вы могли использовать его в любом месте своего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...