如何刷新 Listview.builder 中的单个列表块?扑

How can I refresh an individual List Tile in a Listview.builder? Flutter

情况:

  1. 我有一个 'Event' 项目,您可以点击 --> 事件详细信息屏幕。
  2. 具有列表形式的各个子项(日期、参与者、描述)。
  3. 我将带有 Future Builder 的子项加载到带有 List Tile 的 Listview.builder 中,如下所示:
  4. 我有一个编辑位置的按钮,它保存到数据库并在本地更新位置变量。这调用 SetState().
  5. 完整列表已更新,即使某些图块没有更改。

问题 有些图块,例如 participants 图块 需要加载图片和其他一些耗时的东西。因此,即使我只是更改位置并更新列表,所有内容都会重新加载,消耗资源并花费太多时间来加载一个简单的字符串。

我在找什么

是否可以只重新加载某个列表块?您会使用另一个小部件而不是 ListView.builder 吗?其他逻辑?感谢任何帮助。

答案扩展[更新]

标记的答案是正确的。我正在使用未来的构建器,这迫使我总是重新加载所有数据。通过将不同的 Streams 与 Streambuilder 一起使用,我能够更改数据库中的数据,它会在 UI 上自动更改,而无需更新状态!魔法.

根据我的观察,Future Builder 是问题所在,Future builder 在 ListView.builder 中重建整个小部件。在你的情况下使用 StreamBuilder 你会看到你所做的改变...