Трепетание в ожидании результата диалога - PullRequest
0 голосов
/ 01 мая 2020

У меня есть следующий код, который вызывается щелчком кнопки FlatButton:

_performOrderCheck(BuildContext context) async {
    bool _checksCompleted = await _performBundleCheck(context);
    print("Sepp");
    print(_checksCompleted);

    if (_checksCompleted) {
      _addArticleToOrder(_innerQty, _article);
      Navigator.pop(context);
    }
  }

Future<bool> _performBundleCheck(BuildContext context) async {
    //check bundles
    if (!_article.checkBundeledArticles()) {
      showDialog(
          context: context,
          builder: (_) => AlertDialog(
                title: Text('Menü unvollständig'),
                content: Text(
                    'Sie haben nicht alle möglichen Artikel gewählt. Wollen sie dennoch fortfahren?'),
                actions: <Widget>[
                  FlatButton(
                      onPressed: () {
                        Navigator.pop(_);
                        return false;
                      },
                      child: Text('Nein')),
                  FlatButton(
                      onPressed: () {
                        //_addArticleToOrder(_innerQty, _article);
                        Navigator.pop(_);
                        return true;
                        //Navigator.pop(context);
                      },
                      child: Text('Ja')),
                ],
                elevation: 24,
              ),
          barrierDismissible: false);
    } else {
      return true;
    }
  }

Что я хотел бы, так это то, что может ждать решения пользователя, а затем он вызывает "_addArticleToOrder". Это возможно?

Спасибо за любую помощь.

1 Ответ

1 голос
/ 01 мая 2020

Вы можете добавить ключевое слово await перед showdialog и возвращаемое значение в конце диалога показа.

добавлено ожидание.

  await showDialog(

добавить возвращаемое значение

 barrierDismissible: false);
      return true; // added line
...