Flutter 在执行类似于点击行的操作后,如何更新/刷新ListView的视图

Flutter 在执行类似于点击行的操作后,如何更新/刷新ListView的视图,flutter,listview,setstate,Flutter,Listview,Setstate,我正在学习颤振网站上保存的/最喜欢的教程 代码: void\u pushfavorites(){ 导航器.of(上下文).push( MaterialPage路由(生成器:(BuildContext ctx){ var tiles=_favorites.map((字对){ 返回列表块( 标题:文本(pair.asCamelCase,样式:_fontStyle), onTap:(){ // ⬇︎ 也许在这里我应该更新瓷砖,但我不知道怎么做 设置状态(){ _收藏夹。删除(对); }); }, );

我正在学习颤振网站上保存的/最喜欢的教程

代码:

void\u pushfavorites(){
导航器.of(上下文).push(
MaterialPage路由(生成器:(BuildContext ctx){
var tiles=_favorites.map((字对){
返回列表块(
标题:文本(pair.asCamelCase,样式:_fontStyle),
onTap:(){
// ⬇︎ 也许在这里我应该更新瓷砖,但我不知道怎么做
设置状态(){
_收藏夹。删除(对);
});
},
);
});
最终分割=ListTile.divideTiles(
背景:ctx,
瓷砖:瓷砖,
).toList();
返回脚手架(
appBar:appBar(标题:文本(“喜爱的建议”),
正文:列表视图(子项:已分割,)
);
})
);
}

整个代码是您正在调用父路由的
setState
(具有
\u pushFavorites
功能的小部件)

为这部分代码创建一个单独的有状态小部件,它应该可以工作:

var tiles = _favourites.map((WordPair pair) {
          return ListTile(
            title: Text(pair.asCamelCase, style: _fontStyle),
            onTap: () {
              // ⬇︎ probably here I should update tiles, but I don't know how to do it
              setState(() {
                _favourites.remove(pair);
              });
            },
          );
        });
        final divided = ListTile.divideTiles(
          context: ctx,
          tiles: tiles,
        ).toList();

        return Scaffold(
          appBar: AppBar(title: Text('Favourite Suggestions')),
          body: ListView(children: divided,)
        );

您正在调用父路由的
setState
(具有功能
\u pushFavorites
的小部件)

为这部分代码创建一个单独的有状态小部件,它应该可以工作:

var tiles = _favourites.map((WordPair pair) {
          return ListTile(
            title: Text(pair.asCamelCase, style: _fontStyle),
            onTap: () {
              // ⬇︎ probably here I should update tiles, but I don't know how to do it
              setState(() {
                _favourites.remove(pair);
              });
            },
          );
        });
        final divided = ListTile.divideTiles(
          context: ctx,
          tiles: tiles,
        ).toList();

        return Scaffold(
          appBar: AppBar(title: Text('Favourite Suggestions')),
          body: ListView(children: divided,)
        );

太棒了,它成功了!我对弗利特很陌生,我更好地理解了有状态widgetsGreat背后的逻辑——它起作用了!我对flatter很陌生,我更好地理解了有状态小部件背后的逻辑