у меня проблема с пакетом "awesome_dialog" во флаттере - PullRequest
0 голосов
/ 01 мая 2020

я пытаюсь использовать пакет "awesome_dialog", который доступен здесь: https://pub.dev/packages/awesome_dialog

Но он не работает правильно: (

Вот код я использую:

AwesomeDialog(
                          context: context,
                          useRootNavigator: true,
                          animType: AnimType.TOPSLIDE,
                          dialogType: DialogType.WARNING,
                          tittle: "pas de titre",
                          desc: "Vous ne pouvez pas sélectionner plus de 5 numéros !!!",
                          btnOkOnPress: () {
                            Navigator.pop(context);
                          },
                        ).show();

В результате он переходит на предыдущую страницу ... Обычно, когда я нажимаю ОК, он остается на той же странице. И если я удаляю строку useRootNavigator, у меня появляется большая ошибка:

"При обработке жеста было выдвинуто следующее утверждение: Поиск предка деактивированного виджета небезопасен.

В этот момент состояние дерева элементов виджета больше не является стабильным.

Чтобы безопасно ссылаться на предка виджета в его методе dispose (), сохраните ссылку на предка, вызвав функцию depenOnInheritedWidgetOfExactType () в методе didChangeDependencies () виджета. "

До использования этого пакета мой код был :

showDialog(
                            context: context,
                            builder: (BuildContext context){
                              return AlertDialog(
                                title: Text("Vous ne pouvez pas sélectionner plus de 5 numéros !!!"),
                                shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10.0))),
                                actions: <Widget>[
                                  FlatButton(
                                    child: new Text("OK"),
                                    onPressed: () {
                                      Navigator.of(context).pop();
                                    },
                                  ),
                                ],
                              );
                            }
                        );

1 Ответ

0 голосов
/ 01 мая 2020

Вам не нужно использовать навигатор, он сам позаботится об упаковке.

btnOkOnPress: () {
    //      Navigator.pop(context);  // commented line
},

Вы найдете это в документации части пакета.

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