首页 > 解决方案 > 使用 .contains 将小部件添加到列表视图

问题描述

在初始化状态下,我添加了一个 if 语句来检查列表中是否存在自定义小部件,我将传递给 Listview.builder,称为 AddItemButtonTile。如果它不存在,我想将它添加到列表中。

 @override
void initState() {
if (!displayedList.listContent.contains(AddItemButtonTile)) {
  displayedList.listContent.add(AddItemButtonTile(openTextField));
}
super.initState();
}

每次我离开并返回页面时,此代码都会添加一个新的 AddItemButtonTile。为什么这个 If 语句返回 true?

标签: flutterdart

解决方案


尝试:

@override
void initState() {
   if (!displayedList.listContent.any((item) => item is AddItemButtonTile)) {
      displayedList.listContent.add(AddItemButtonTile(openTextField));
   }
   super.initState();
}

推荐阅读