【发布时间】:2020-10-20 02:32:03
【问题描述】:
所以我尝试动态更新单个列表视图项。我正在使用一个函数来生成每个项目,并在该函数中创建了一个局部变量。我使用 setstate 更新该变量,但 UI 没有更新。如果我将相同的变量设为全局变量,它会起作用,但我会更改每个我不想要的列表视图项目。有没有人对此有任何提示?我是新来的颤振和抱歉,如果这已被多次询问。我尝试搜索但找不到任何解决方案。这是项目构建器函数的类似代码。
Widget generateListItem(){
bool flag= false;
return InkWell(
onTap:(){
setState((){
flag=true;
})
},
child: Text(flag? "Changed" : "Not Changed"),
);
}
【问题讨论】:
-
当通过 setState() 重建 'generateListItem' 时,标志也被重置。所以总是标志是假的。
-
哦.. 现在更有意义了。有没有办法单独更新项目?
-
使它成为
State类中的变量,而不是方法中的变量。 @Bikramgurung -
如果我这样做,setstate 会更改每个项目。我想单独更改特定项目。
-
您需要在重新构建的顶级父小部件处控制该值。 "Page(here)[Stateful widget] - build() - 'generateListItem' 小部件..."
标签: flutter flutter-layout setstate