我有一个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
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的删除按钮时,我在有状态窗口小部件中调用了删除函数,并且执行了该函数中的代码,因为该对象已从数据库中删除。但这并没有在视图中正确反映。有时会删除错误的元素,有时甚至根本不会删除任何元素。有时可以。由于限制,我无法发布实际的源代码,但我确实需要帮助来帮助在Flutter中修改列表视图中的元素。在flutter画廊中演示的标准方法不起作用。
仅需了解更多信息,列表视图就会显示在PageView页面之一内,并且所有数据都只能从Sqflite中获取并显示在当前列表小部件中。
请帮助。
谢谢。
答案 0 :(得分:0)
您应该将一个密钥添加到ListView构建器的返回小部件中 我建议您从Google devolopers频道观看此视频:https://www.youtube.com/watch?v=kn0EOS-ZiIc 它很好地帮助您了解有关“键”的更多信息