我有一个脚手架,其中包含一个 CustomScrollView ,其中显示了用户未尝试过的项目列表(另一个显示了用户已尝试过的项目)。
使用出色的软件包flutter_sticky_header,我在 CustomScrollView 中填充了各种 SliverStickyHeaders 和 SliverLists ,以获取一些信息。的行:
Fruits
Apples >
Bananas >
Pears >
Vegetables
Broccoli >
Cabbage >
Potatoes >
SliverLists 由一些GestureDetector“按钮”组成,当使用以下命令进行点击时,这些按钮会将用户带到 DetailScreen 。
onTap: () async {
bool result = await Navigator.push( *go to the DetailScreen* )
setState(() {
if (result) { *change the icon on the button* }
}
}
在 DetailScreen 上,用户可以指示他们是否尝试过该项目,以及何时弹出回到第一个屏幕和 CustomScrollView (按钮上的图标)他们推送的内容已更新,以显示已尝试项目的复选标记,并为未尝试项目显示“>”。
不幸的是,当用户弹出“未尝试过”的项目列表时,他们刚刚指出的“尝试过”的项目仍然存在,并且一直保留到用户导航离开并返回。
我想做的是更新/刷新/重建整个列表,以便当用户将项目从“未尝试”更改为“尝试”后弹出时,该项目不再在未尝试项目的列表中(反之亦然)。
基本上,当用户弹出时,我可以将将其带到 DetailScreen 的特定小部件的状态进行更新,但无法弄清楚如何更新/刷新父级的状态 CustomScrollView 小部件。