我是飞镖新手。
我有一个用于项目的类,其中包含一个id整数和一个bool可见性。
class Item{
item(this.name, this.isVisible);
final int id;
bool isVisible;
}
还有另一个函数返回小部件
Widget _buildwithItem(Item item){
return Visibility(
visible: item.isVisible,
child:Text(item.id.toString())
);
}
现在我需要将许多项目创建为数组
List<Item> items = <Item>[];
List<Widget> widgets = <Widget>[];
createItems();
items.foreach((element)widgets.add(_buildwithItem(element)));
现在,我将这些小部件放在一列中并添加一个按钮, 单击此按钮将在
的项目中搜索IDitem.id = id
找到项目后,我将设置
item.isVisible = !item.isVisible;
我想同时隐藏/显示该项目的小部件,该怎么做?
我尝试为每个“可见性”设置键,但是可见值是最终值,所以我无法直接对其进行编辑。
我曾尝试将构建函数移至Item类中,但仍无法正常工作。
答案 0 :(得分:0)
您想创建一个Item的新实例,然后替换以前的Item实例,我显然不知道您的代码是什么样子,但是您可能想做这样的事情。
setState((){
items[itemFound] = Item(items[itemFound].id, !items[itemsFound].isVisible)
)};