【发布时间】:2021-01-30 10:51:37
【问题描述】:
我有一个 ListView 小部件(使用 ListView.builder(...)),它显示从远程数据库中延迟获取的一长串分页查询结果。因为结果是分页的,所以在用户滚动浏览所有结果之前我不知道有多少结果。
如何在 ListView 构建后设置动态 ListView 的 itemCount(或以其他方式固定长度)?一旦 itemCount 已知,我可以将 ListView 替换为具有 set itemCount 的新 ListView,但这听起来很草率并且可能很昂贵(我认为 Flutter 不够聪明,无法重用旧 ListView 的子项?)。
【问题讨论】:
-
你可以使用列吗?
-
我必须在列小部件之上重建所有 ListView 的逻辑,此时最好只重建带有 itemCount 集的父小部件。
-
“一旦 itemCount 已知,我可以将 ListView 替换为具有 set itemCount 的新列表,但这听起来很草率而且可能很昂贵” - 完全可以采用这种方法
-
如果你有你的 list = [],并将 itemCount 设置为 list.length 它应该在技术上更新并随着列表的更新而相应地构建;这不行吗?