这是我的警报对话框代码:我添加了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”。 接收者:null 尝试调用:call()
答案 0 :(得分:1)
我已经使用
解决了此问题Navigator.of(context, rootNavigator: true).pop();
答案 1 :(得分:0)
使用Navigator.of(context).pop();
关闭对话框
onPressed: () {
Navigator.of(context).pop();
_saveData(textController.text, nameTextController.text,
dateToPost);
},
答案 2 :(得分:0)
您应该在关闭应用程序之前保存数据。
而不是Navigator.pop(context)
做Navigator.of(context).pop(true)
onPressed: () {
_saveData(textController.text, nameTextController.text,
dateToPost);
Navigator.of(context).pop(true);
}