【问题标题】:Hide items in ListView.builder in Flutter在 Flutter 中隐藏 ListView.builder 中的项目
【发布时间】:2021-12-26 04:22:23
【问题描述】:

我想在 Flutter 中实现一个过滤器,并根据符合过滤器的项目动态更改 ListView。我有一个人列表(由具有 AGE 属性的 People 类表示)。例如,我想显示年龄

【问题讨论】:

  • 它可以通过列表中的映射或条件状态来完成,您能否包括您的代码-sn-p 以及您到目前为止尝试过的内容?
  • 你应该隐藏的是你的逻辑端,而不是你的 UI 端,尝试从你的状态管理中过滤列表并显示过滤后的结果

标签: flutter flutter-listview


【解决方案1】:

您只需要设置渲染列表的条件,并且仅当他/她

ListView.builder(
  itemCount: items.length,
  itemBuilder: (context, index) {
    if (person.age < 18) 
      return Text(person.age);
    return Text('');
  },
)

【讨论】:

  • 这仍然应该在 ListView 中可见。如果您在 ListView 中使用了边框装饰,您将看到一个空白点,但边框将可见。而不是“返回文本('');”我想说根本不要建造这个项目,跳过它并移动到下一个。
  • 不可能在 UI 中不返回任何内容,因为 Flutter 的 null 安全性,如果条件不满足,您必须返回一些内容。所以如果你不想渲染它,你应该按照 Jim Chiu 的建议做一些事情,在逻辑中过滤它。
【解决方案2】:

使用来自flutter sdk的Visibility Class,我们可以根据需要隐藏/显示

【讨论】:

    猜你喜欢
    • 2021-01-19
    • 2022-01-23
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多