1

我有一个脚手架,其中包含一个CustomScrollView显示用户未尝试过的项目列表(另一个显示用户已尝试过的项目)。

使用出色的包flutter_sticky_header,我使用各种SliverStickyHeadersSliverLists填充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小部件的状态。

4

0 回答 0