颤振对话框将返回到旧页面,而不仅仅是关闭Mat对话框

时间:2020-07-25 15:36:57

标签: flutter dart

我向用户显示一个对话框以告知一些信息,然后捕获此输入并执行我的逻辑,但是,该对话框不仅关闭,而且导航到旧页面...

我正在寻找并尝试发现的所有东西: 我尝试:

Navigator.of(context, rootNavigator: true).pop(value)
Navigator.of(context, rootNavigator: false).pop(value)
Navigator.pop()
Navigator.of(context).pop(value)

我不知道该怎么做...

这是我的代码: 我的对话框

Future<String> _showSearchList(BuildContext context) {
      TextEditingController customController = TextEditingController();
      return showDialog(
        context: context,
        builder: (context) {
          return AlertDialog(
            content: Container(
              width: 100,
              height: 100,
              child: Column(
                children: <Widget>[
                  TextFormField(
                    decoration: InputDecoration(labelText: "Senha da lista"),
                    controller: customController,
                  ),
                ],
              ),
            ),
            actions: <Widget>[
              MaterialButton(
                onPressed: () => Navigator.of(context, rootNavigator: false)
                    .pop(customController.text.toString()),
                elevation: 5.0,
                child: Text("Entrar"),
              ),
            ],
          );
        },
      );
    }

调用对话框时的功能

 onPressed: () {
          if (!_formKey.currentState.validate()) return;

          setState(() {
            busy = true;
          });
          _formKey.currentState.save();

          _listRepository.getByList(_codLista).then(
            (value) {
              print(value);
              if (value.codigo == "") {
                SnackBar mySnackBar = SnackBar(
                  content: Text("Codigo inválido"),
                );
                Scaffold.of(context).showSnackBar(mySnackBar);
              } else {
                _listaFinal = value;
                _showSearchList(context).then((value) {
                  if (value == _listaFinal.password) {
                    _userRepository
                        .getAllUserOfListByListaId(_listaFinal.id)
                        .then((value) {
                      value.forEach((element) {
                        if (element.id.toUpperCase() == bloc.id.toUpperCase()) {
                          _iHaveBeenAdd = true;
                        }
                      });
                      bloc.addCompleteValueinList(value);

                      setState(() {
                        busy = false;
                        _isLoad = true;
                      });
                    });
                  } else {
                    SnackBar mySnackBar = SnackBar(
                      content: Text("Senha Inválida"),
                    );
                    Scaffold.of(context).showSnackBar(mySnackBar);
                    setState(() {
                      busy = false;
                    });
                  }
                });
              }
            },
          );
        },

请有人帮我。谢谢。

0 个答案:

没有答案