#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 вверх по цепочке.