【问题标题】:Dialog box is not closing flutter对话框未关闭颤振
【发布时间】:2020-06-02 09:28:12
【问题描述】:

这是我的警报对话框代码:我添加了 Navigator.pop(context);在轻敲的方法调用中。但它没有关闭。

 showLoginDialog(BuildContext context,
  {TextEditingController usernameController,
  TextEditingController loginController}) {
var textController = new TextEditingController();
var nameTextController = new TextEditingController();
String dateToPost;
Alert(
    context: context,
    title: "Add Profile",
    content: Column(
      children: <Widget>[
        TextField(
          controller: nameTextController,
          decoration: InputDecoration(
            labelText: 'Name',
          ),
        ),
        TextField(
          controller: textController,
          onTap: () async {
            DateTime date = DateTime(1900);
            //FocusScope.of(context).requestFocus(new FocusNode());

            date = await showDatePicker(
                context: context,
                initialDate: DateTime.now(),
                firstDate: DateTime(1900),
                lastDate: DateTime.now());

            var formatter = new DateFormat('dd MMM yyyy');
            var formatterToPost = new DateFormat('yyyy-MM-dd');
            String formatted = formatter.format(date);
            dateToPost = formatterToPost.format(date);
            print(formatted);

            textController.text = formatted;
          },
          decoration: InputDecoration(
            labelText: 'Birth Date',
          ),
        ),
      ],
    ),
    buttons: [
      DialogButton(
        onPressed: () {
          Navigator.pop(context);
           _saveData(textController.text, nameTextController.text,
               dateToPost);
        },
        child: Text(
          "Add",
          style: TextStyle(color: Colors.white, fontSize: 20),
        ),
      )
    ]).show();

}

另外,在第二次点击时显示错误:方法“调用”在 null 上被调用。 接收方:空 尝试调用:call()

【问题讨论】:

  • 试试这个Navigator.of(context).pop();

标签: flutter alert forceclose


【解决方案1】:

我已经解决了这个问题

Navigator.of(context, rootNavigator: true).pop();

【讨论】:

  • 这解决了我的问题!!谁能解释为什么添加 rootNavigator 有效? :)
【解决方案2】:

您应该在关闭应用程序之前保存数据。

而不是Navigator.pop(context)Navigator.of(context).pop(true)

onPressed: () {
    _saveData(textController.text, nameTextController.text,
     dateToPost);
    Navigator.of(context).pop(true);
}

【讨论】:

  • 它给出错误消息:未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'focusScopeNode'。收件人:空
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
相关资源
最近更新 更多