gpt4 book ai didi

dart - 如何在 AlertDialog 关闭时刷新 Flutter UI?

转载 作者:IT王子 更新时间:2023-10-29 06:40:24 28 4
gpt4 key购买 nike

我正在开发某种时间跟踪应用程序。其背后的主要思想很简单 - 添加所需项目的小时数并显示每天的小时数总和。

我为此使用了 Flutter 和 dart,我有以下内容:- 每个工作日的卡片列表- 卡片已实现手势检测器水龙头 - 此操作将显示所选日期的所有项目- 添加小时的 AlertDialog 弹出窗口

我试图在关闭警报对话框弹出窗口时刷新所选日期的总小时数,而不重新加载所有数据。

有人可以帮助我了解如何实现刷新吗?

到目前为止我尝试过的是:

  1. 我在导航到上一个屏幕之前更新了数据上下文(传递的值)
  2. 我使用 StatefulWidget 来为我的应用添加交互性
  3. 我在返回上一屏幕之前使用 setState 更改数据,但没有成功。
  4. 我在谷歌上找到了多种“刷新”用户界面的方法,但都没有成功
  5. 我尝试使用 setState(),因为它可以完美地处理一些数据,但我收到以下错误:“构建函数返回 null。”
  6. 我将 setState 添加为 ShowDialog 的一部分,但出现以下错误:“在构建过程中调用了 setState() 或 markNeedsBuild()。”所以我添加了额外的逻辑来检查数据是否脏了,但在一天结束时我得到了相同的结果。

所需的行为是单击卡片并显示所选日期的所有项目。添加新值后,我想返回同一个地方(打开卡片),新添加的项目将与当天更新的总小时数一起显示在列表中。

现在,我完成了部分编辑。我打开卡片并编辑现有项目之一。数据已保存,但当我返回上一屏幕时,无法更新 UI 上的小时数。当我再次打开编辑屏幕时,显示的数据符合预期。

最佳答案

首先,您需要调用您的 showDialogStateful Widget 内顾名思义,为了进入一个状态。然后,在该屏幕中,您可以调用一个方法并显示您的对话框,它将返回一个 Future<void>。这意味着您可以在对话框关闭后执行此操作,例如

showDialog(// Yours params).then((_)=>setState((){}));

并且您的 UI 将更新以匹配更改。

关于dart - 如何在 AlertDialog 关闭时刷新 Flutter UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53882930/

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