Это вопрос типа структуры кода. У меня есть две страницы в моем приложении page1 и page2. Страница2 y не имеет значения, за исключением того, что вы можете перемещаться со страницы 1 на страницу 2 и обратно на страницу 1.
На странице 1 я использую этот плагин . Он показывает диалог, и вы предоставляете обратный вызов с выбранным языком. Я использую Stream
, потому что мне нужно загрузить предопределенный язык с общими настройками asyn c. Мое намерение - передать _lang
на страницу2. Код, как у меня есть, работает как положено. Но если вы вернетесь на страницу 1 со страницы 2, вы получите язык по умолчанию, потому что я не вызывал setState. Если я добавлю setState
внутри обратного вызова, изменения не сохранятся, потому что поток каждый раз перестраивается. И я не могу вывести поток, если я хочу, чтобы по умолчанию показывалось при запуске.
StreamBuilder(
stream: langStream.stream,
builder: (context, snapshot) {
if (snapshot.hasData) {
_lenguaje = snapshot.data;
return ListTile(
leading: Icon(Icons.language),
title: Text('${snapshot.data.name}'),
trailing: Text('Your Lang'),
onTap: () {
showLangPicker(
context,
(Language lang) {
_lang = lang;
langStream.update(lang);
},
);
},
);
} else {
return Container();
}
},
),
Я в ситуации куриного яйца. Спасибо.