Как получить обратный вызов onDismiss showModalBottomSheet в флаттер? - PullRequest
0 голосов
/ 22 марта 2020

У меня есть showModalBottomSheet, и для isDismissible задано значение true. Когда я щелкаю за пределами showModalBottomSheet, я хочу получить обратный вызов для него.

в showModalBottomSheet У меня есть кнопка скрытия и при нажатии кнопки скрытия я Я делаю Navigator.pop(context), чтобы скрыть диалоговое окно,

Пробовал whenComplete() & then(), но я получаю обратный вызов за каждое отклонение даже при нажатии кнопки Скрыть.

Как мне это сделать?

1 Ответ

0 голосов
/ 22 марта 2020

Uday,

Вы можете передать параметр при указании маршрута, чтобы увидеть, как был закрыт модальный лист:

                showModalBottomSheet<bool>(
                  context: context,
                  isDismissible: true,
                  builder: (BuildContext context) {
                    return Center(
                      child: RaisedButton(
                        child: const Text("hide"),
                        onPressed: () => Navigator.of(context).pop(true), // pass true indicating that it was hidden via button
                      ),
                    );
                  },
                ).then(
                  (isManuallyHidden) {
                    if (isManuallyHidden ?? false) {
                      print("hidden via button");
                    } else {
                      print("dismissed");
                    }
                  },
                );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...