【问题标题】:Dynamically End Flutter ListView动态结束 Flutter ListView
【发布时间】: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 它应该在技术上更新并随着列表的更新而相应地构建;这不行吗?

标签: android flutter listview


【解决方案1】:

我认为我的方法存在一个根本问题: 用户可以任意滚动(超过列表的限制),因为在流完成之前不知道列表的实际长度。所以我修改了我的方法(根据 Aknahseh_tg 的建议),以便用户看到当前加载元素的长度的固定列表,如果流没有发出“完成”,则最后的占位符元素会显示“正在加载”活动还没有。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2021-05-15
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 2018-06-03
    • 2014-10-17
    相关资源
    最近更新 更多