Как обновить CustomScrollView при возврате с подробного экрана

#flutter #customscrollview

#flutter #customscrollview

Вопрос:

У меня есть каркас, который содержит CustomScrollView, показывающий список элементов, которые пользователь не пробовал (и еще один, который показывает элементы, которые пользователь пробовал).

Используя фантастический пакет flutter_sticky_header, я заполняю CustomScrollView различными SliverStickyHeaders и SliverLists, чтобы получить что-то вроде:

 Fruits
  Apples   >
  Bananas  >
  Pears    >
Vegetables
  Broccoli >
  Cabbage  >
  Potatoes >
  

SliverLists состоят из некоторых «кнопок» GestureDetector, которые выводят пользователя на подробный экран при нажатии с помощью чего-то вроде:

 onTap: () async {
  bool result = await Navigator.push( *go to the DetailScreen* )
  setState(() {
    if (result) { *change the icon on the button* }
  }
}
  

На подробном экране пользователь может указать, пробовали ли они элемент, и когда они возвращаются к первому экрану и CustomScrollView, значок на кнопке, которую они нажали, обновляется, чтобы показать галочку для элементов, которые они попробовали, и «>» для тех, которые они не пробовали.

К сожалению, когда пользователь возвращается к списку элементов «not tried», элемент, который они только что указали, что он «пробовал», все еще существует и остается до тех пор, пока пользователь не перейдет и не вернется.

То, что я хочу сделать, это обновить / обновить / перестроить весь список, чтобы, когда пользователь возвращался после изменения элемента с ‘not tried’ на ‘tried’, этого элемента больше нет в списке неиспробованных элементов (и наоборот).

В принципе, когда пользователь возвращается, я могу обновить состояние конкретного виджета, который привел их к подробному экрану, но не могу понять, как обновить / обновить состояние родительского виджета CustomScrollView вверх по цепочке.