我正在开发某种时间跟踪应用程序。它背后的主要理想很简单-添加所需项目的小时数并显示每天的小时数。
我为此使用Flutter和dart,并且具有以下内容: -每个星期的卡片清单 -卡上已实现手势检测器点击-此操作将显示所选日期的所有项目 -AlertDialog弹出窗口添加小时数
我正在尝试在“警报对话框”弹出窗口关闭时刷新所选日期的总小时数,而不重新加载所有数据。
有人可以帮我实现刷新的任何想法吗?
到目前为止,我尝试过以下操作:
为此,所需的行为是单击卡并显示所选日期的所有项目。添加新值后,我想返回到同一位置(打开卡片),新添加的项目将显示在列表中,并显示当天的总工作时间。
目前,我已完成部分编辑。我打开卡并编辑现有项目之一。数据已保存,但是当我返回上一个屏幕时,无法更新UI上的小时数。当我再次打开编辑屏幕时,显示的数据将按预期进行。
非常感谢您,
玛雅
答案 0 :(得分:1)
首先,您需要在showDialog
内调用Stateful Widget
才能访问州(名称顾名思义)。然后,在该屏幕上,您可以调用一个方法并显示您的对话框,它将返回一个Future<void>
,这意味着您可以在取消对话框后执行操作,例如
showDialog(// Yours params).then((_)=>setState((){}));
,您的用户界面将更新以匹配更改。
答案 1 :(得分:1)
要刷新屏幕时,在对话框的pop Navigator中返回true
FlatButton(
onPressed: () {
Navigator.of(context).pop(true);
},
child: Text("Close"))
结果为真时刷新屏幕
final result = await showDialog<bool>(
context: context,
builder: (context) => MyDialog(),
)
if(result){// refresh screen}