Flutter 对话框未关闭颤振
下面是我的警报对话框代码:我添加了Navigator.pop(上下文);在方法调用中。但它并没有结束Flutter 对话框未关闭颤振,flutter,alert,forceclose,Flutter,Alert,Forceclose,下面是我的警报对话框代码:我添加了Navigator.pop(上下文);在方法调用中。但它并没有结束 showLoginDialog(BuildContext context, {TextEditingController usernameController, TextEditingController loginController}) { var textController = new TextEditingController(); var nameTextControlle
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();
showLoginDialog(构建上下文、,
{TextEditingController用户名控制器,
TextEditingController登录控制器}){
var textController=新的TextEditingController();
var nameTextController=new textededitingcontroller();
字符串dateToPost;
警觉的(
上下文:上下文,
标题:“添加配置文件”,
内容:专栏(
儿童:[
文本字段(
控制器:nameTextController,
装饰:输入装饰(
labelText:'名称',
),
),
文本字段(
控制器:textController,
onTap:()异步{
日期时间日期=日期时间(1900);
//FocusScope.of(context).requestFocus(newfocusnode());
日期=等待showDatePicker(
上下文:上下文,
initialDate:DateTime.now(),
firstDate:DateTime(1900),
lastDate:DateTime.now());
var formatter=new DateFormat('dd-MMM-yyyy');
var formatterToPost=新的日期格式('yyyy-MM-dd');
字符串格式=格式化程序。格式(日期);
dateToPost=formatterToPost.format(日期);
打印(格式化);
textController.text=已格式化;
},
装饰:输入装饰(
labelText:“出生日期”,
),
),
],
),
按钮:[
对话框按钮(
已按下:(){
Navigator.pop(上下文);
_保存数据(textController.text、nameTextController.text、,
dateToPost);
},
子:文本(
“添加”,
样式:TextStyle(颜色:Colors.white,字体大小:20),
),
)
]).show();
}
另外,在第二次单击时显示错误:方法“call”是在null上调用的。
收件人:空
已尝试调用:call()在关闭应用程序之前,应保存数据 而不是
Navigator.pop(context)
doNavigator.of(context.pop)(true)
我已经用计算机解决了这个问题
Navigator.of(context, rootNavigator: true).pop();
试试这个
Navigator.of(context.pop()代码>它给出错误消息:未处理的异常:NoSuchMethodError:对null调用了getter'focusScopeNode'。收信人:那很有效,谢谢
Navigator.of(context, rootNavigator: true).pop();