删除元素时颤振ListView.builder未更新列表
我有一个ListView.builder小部件删除元素时颤振ListView.builder未更新列表,listview,dart,flutter,Listview,Dart,Flutter,我有一个ListView.builder小部件 void delete(dynamic obj) { setState((){ pc.remove(obj); }) } void update(dynamic obj){} List pc = List(); @override void init(){ super.initState(); //Fetch data setState((){ pc = data; }) } @override Wi
void delete(dynamic obj) {
setState((){
pc.remove(obj);
})
}
void update(dynamic obj){}
List pc = List();
@override
void init(){
super.initState();
//Fetch data
setState((){
pc = data;
})
}
@override
Widget build(BuildContext context) {
return Container(
child: ListView.builder(
padding: EdgeInsets.only(bottom: 72.0),
itemCount: pc.length,
itemBuilder: (context, index) {
return ListItemWid(
pc.elementAt(index), delete, update);
},
),
);
}
这里显示的是动态元素类型,但实际上是一个固定对象。
现在,当调用ListItemWid的delete按钮时,我调用有状态小部件中的delete函数,并执行函数中的代码,因为对象已从db中删除。但这并没有正确地反映在视图中。有时删除错误的元素,有时根本不删除任何元素。有时它是有效的。由于受到限制,我无法发布实际的源代码,但我确实需要帮助修改颤振列表视图中的元素。颤振走廊中演示的标准方法不起作用 更多信息,列表视图显示在其中一个PageView页面中,所有数据仅从当前列表小部件中的Sqflite获取和显示 请帮忙
谢谢。您应该向ListView生成器返回的小部件添加一个键 我建议您从google DevLopers频道观看以下视频:
它很好地帮助您了解有关“键”的更多信息。您应该向ListView生成器的返回小部件添加一个键 我建议您从google DevLopers频道观看以下视频:
它很好地帮助您了解有关“键”的更多信息Try而不是
pc.remove(obj)代码>pc=pc.remove(obj.toList()
“有时删除错误的元素,有时根本不删除任何元素。有时有效。”表示应将ValueKey
s传递给ListItemWid
元素,如果数据
项作为键值传递,则应在其中传递唯一属性。请尝试而不是pc.remove(obj)代码>pc=pc.remove(obj.toList()代码>“有时删除错误的元素,有时根本不删除任何元素。有时有效。”表示应将ValueKey
s传递给ListItemWid
元素,如果数据
项作为键值传递,则在该元素中传递唯一属性。