Flutter 局部变量上的颤振设置状态未更新UI
因此,我尝试动态更新单个listview项。我使用一个函数来生成每个项,并在该函数中创建了一个局部变量。我使用setstate更新该变量,但UI没有更新。如果我将同一个变量设为全局变量,它会工作,但我会更改我不想要的每个listview项。有人有什么建议吗?我是一个新的颤栗和抱歉,如果这已经被问了很多次。我试着搜索,但找不到任何解决办法。这是项生成器函数的类似代码Flutter 局部变量上的颤振设置状态未更新UI,flutter,flutter-layout,setstate,Flutter,Flutter Layout,Setstate,因此,我尝试动态更新单个listview项。我使用一个函数来生成每个项,并在该函数中创建了一个局部变量。我使用setstate更新该变量,但UI没有更新。如果我将同一个变量设为全局变量,它会工作,但我会更改我不想要的每个listview项。有人有什么建议吗?我是一个新的颤栗和抱歉,如果这已经被问了很多次。我试着搜索,但找不到任何解决办法。这是项生成器函数的类似代码 Widget generateListItem(){ bool flag= false; return InkWe
Widget generateListItem(){
bool flag= false;
return InkWell(
onTap:(){
setState((){
flag=true;
})
},
child: Text(flag? "Changed" : "Not Changed"),
);
}
每次调用setState时都会重置该标志,因为该标志位于generateListItem()小部件中 我想你必须在列表中设置bool,所以当你调用setState时,bool列表中的状态没有重置
List<bool> flag = []; //
Widget generateListItem(int i){
flag.add(false);
return InkWell(
onTap:(){
setState((){
flag[i]=true;
})
},
child: Text(flag[i]? "Changed" : "Not Changed"),
);}
列表标志=[];//
控件生成列表项(int i){
flag.add(false);
回墨槽(
onTap:(){
设置状态(){
标志[i]=真;
})
},
子项:文本(标记[i]?“已更改”:“未更改”),
);}
每次调用setState时都会重置该标志,因为该标志位于generateListItem()小部件中
我想你必须在列表中设置bool,所以当你调用setState时,bool列表中的状态没有重置
List<bool> flag = []; //
Widget generateListItem(int i){
flag.add(false);
return InkWell(
onTap:(){
setState((){
flag[i]=true;
})
},
child: Text(flag[i]? "Changed" : "Not Changed"),
);}
列表标志=[];//
控件生成列表项(int i){
flag.add(false);
回墨槽(
onTap:(){
设置状态(){
标志[i]=真;
})
},
子项:文本(标记[i]?“已更改”:“未更改”),
);}
当通过setState()重新生成“generateListItem”时,该标志也会重置。所以旗帜总是假的。。现在这更有意义了。是否有任何方法可以单独更新该项?将其设置为State
类中的变量,而不是方法中的变量@如果我这样做,setstate会更改每一项。我想单独更改特定项。您需要在重新构建的顶部父窗口小部件上控制该值。“页面(此处)[有状态小部件]-build()-'generateListItem'小部件…”当通过setState()重新生成'generateListItem'时,标志也会重置。所以旗帜总是假的。。现在这更有意义了。是否有任何方法可以单独更新该项?将其设置为State
类中的变量,而不是方法中的变量@如果我这样做,setstate会更改每一项。我想单独更改特定项。您需要在重新构建的顶部父窗口小部件上控制该值。“页面(此处)[有状态小部件]-build()-'generateListItem'小部件…”太棒了<代码>地图可能太棒了。太神奇了<代码>地图也可能是。