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很陌生,我更好地理解了有状态小部件背后的逻辑