我有一个脚手架,其中包含一个CustomScrollView显示用户未尝试过的项目列表(另一个显示用户已尝试过的项目)。
使用出色的包flutter_sticky_header,我使用各种SliverStickyHeaders和SliverLists填充CustomScrollView以获得以下内容:
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小部件的状态。