gpt4 book ai didi

flutter - 从第二个屏幕导航返回时关闭AlertDialog并刷新页面 float

转载 作者:行者123 更新时间:2023-12-03 04:38:25 24 4
gpt4 key购买 nike

我有一种检查当前用户位置是否已设置的方法,如果没有设置,请使用两个按钮打开一个警报对话框:“取消”和“更新配置文件”。更新配置文件按钮的onPressed导航到第二个屏幕,其中包含用于更新用户位置的表单。问题是:如果用户单击“更新”按钮并更新位置,则单击“后退”按钮将显示第一页,并且警告对话框仍处于打开状态。期望:关闭后退按钮并更新位置时,后退按钮将打开第一个屏幕并刷新整个页面,从而获得新的位置设置。
参见代码:FIRST SCREEN(HOME SCREEN)
@override
无效的initState(){
super.initState();
getUserDetails();
}

  updateProfileLocationPrompt(BuildContext context) {
Widget cancelButton = FlatButton(
child: Text("Cancel",
),
onPressed: () {
Navigator.of(context).pop(true);
},
);
Widget updateProfileButton = FlatButton(
child: Text("Update",
),
onPressed: () {
Navigator.of(context)
.push(new MaterialPageRoute(builder: (context) => SettingsScreen()));
},
);
AlertDialog alert = AlertDialog(
title: Text("Update location",
),
content: Text(
"Please Update you location",
),
actions: [
cancelButton,
updateProfileButton,
],
);

// show the dialog
showDialog(
context: context,
builder: (BuildContext context) {
return alert;
},
);
}

getUserDetails() async {
var firebaseUser = FirebaseAuth.instance.currentUser;

DocumentSnapshot value = await FirebaseFirestore.instance
.collection(Str.USERS)
.doc(firebaseUser.uid)
.get();
if (value.data()[Str.ADDRESS].toString() == null ||
value.data()[Str.ADDRESS].toString() == "") {
return updateProfileAndLocationPrompt(context);
} else {
setState(() {
searchLocationAddress = value.data()[Str.ADDRESS].toString();//got from firebase
getItems();
});
}
return;
}
第二屏幕-设置屏幕
带有文本字段的常规页面,用于将位置更新到Firebase。
真正的问题是:如何导航回到主屏幕,使用新数据刷新主屏幕并重新加载页面,因此不会打开对话框,因为一旦设置位置检查就不会打开对话框。
当前,即使我从对话框导航到第二个屏幕,警报对话框仍处于打开状态,主屏幕不会刷新新数据。

最佳答案

尝试

  Widget updateProfileButton = FlatButton(
child: Text("Update",
),
onPressed: () async {
Navigator.pop(context);
await Navigator.of(context)
.push(new MaterialPageRoute(builder: (context) => SettingsScreen()));
setState((){});

},
);

关于flutter - 从第二个屏幕导航返回时关闭AlertDialog并刷新页面 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63688642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com