Когда вы представляете AlertDialog (используя await showDialog()
), возвращается Future<dynamic>
значение. Итак, в диалоговом окне есть несколько кнопок, которые позволяют пользователю выбирать свою тему. Как только пользователь выберет тему, верните выбранную тему, используя Navigator.of(context).pop(selectedTheme)
.
Дождитесь этого значения везде, где вы показываете диалоговое окно, например final userSelectedTheme = await showDialog(...)
. Получив новое значение, обновите любую модель состояния, в которой находится тема, и ваше приложение должно обновиться соответствующим образом.
Поскольку темы обычно находятся на верхнем уровне приложения, вам, вероятно, понадобится нечто большее, чем просто виджеты с отслеживанием состояния, если вы больше ничего не используете. Я бы посмотрел на Provider, если вы ни с чем не знакомы:
https://pub.dev/packages/provider