Futter:从ListTile重建ListView

时间:2020-08-28 14:36:33

标签: flutter listview

我在ListView中有一个FutureBuilder。该FutureBuilder从磁盘加载列表,加载后显示ListView。该ListView有一个自定义的ItemTile用于显示每个加载的项目。每个ItemTile都有一个用于复制自身的按钮(即,将自身的副本写入内存)。现在如何通知ListView进行重建?

这是实现我的ItemTile的方式(我只包含了相关代码)。

@override
Widget build(BuildContext context) {
  return InkWell(
    child: Card(
      semanticContainer: false,
      //This flag should be false if the card contains multiple different types of content.
      child: Container(
        height: 200,
        width: double.infinity,
        child:
            Align(
              alignment: Alignment.topRight,
              child: getPopUpMenuButton(context),
            )
      ),
    ),
  );
}


PopupMenuButton<String> getPopUpMenuButton(BuildContext context) {
return PopupMenuButton(
  onSelected: (str) {
    switch (str) {
      case 'MAKECOPY':
        {
          Item newItem = Item.clone(this.item, sameUID: false);
          Scaffold.of(context).setState(() {
            _itemManager.save(newItem);
          });
        }
    }
  },
  icon: Icon(Icons.more_vert),
  itemBuilder: (_) => <PopupMenuItem<String>>[
    new PopupMenuItem<String>(
        value: 'MAKECOPY',
        child: Text(AppLocalizations.of(context).get('edit_as_copy'))),
  ],
);
}

我以为Scaffold.of(context).setState可以达到目的,但事实并非如此。如何正确地从列表项中调用ListView / FutureBuilder的重建?

0 个答案:

没有答案