dart Flutter ListView.builder在删除元素时不更新列表

j9per5c4  于 2023-09-28  发布在  Flutter
关注(0)|答案(2)|浏览(192)

我有一个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的delete按钮被调用时,我调用有状态小部件中的delete函数,并且执行函数中的代码,因为对象从db中删除。但在《意见》中没有得到适当反映。有时候,删除了错误的元素,有时候根本没有删除任何元素。有时灵由于限制,我不能发布实际的源代码,但我真的需要帮助修改flutter中列表视图中的元素。Flutter画廊中所示的标准方法不起作用。
更多信息,列表视图显示在一个PageView页面中,所有数据都是从Sqflite获取的,并仅在当前列表小部件中显示。
请帮帮我
谢谢.

nx7onnlm

nx7onnlm1#

你应该添加一个键到你的ListView构建器返回的小部件,我建议你从谷歌开发者频道看这个视频:https://www.youtube.com/watch?v=kn0EOS-ZiIc它很好地帮助您了解更多关于“键”

w8f9ii69

w8f9ii692#

如果使用此命令删除特定索引值
listName.removeAt(index);

相关问题