У меня проблема с моим диалогом.
У меня есть домашний экран с кодом для перехода ко второму экрану, например так:
Navigator.push(context, MaterialPageRoute(
builder: (context) {
return SecondScreen("myData");
}
));
Это переходит к следующему экранукак это должно.На втором экране я в конечном итоге показываю диалоговое окно, оно отображается правильно, но как только я нажимаю на TextFormField в диалоге, вышеупомянутая функция конструктора вызывается снова, создавая мой SecondScreen снова и снова.Затем, как только я закрываю диалог с помощью pop (), он снова вызывает приведенный выше код.
Я хочу иметь возможность использовать мой диалог без запуска приведенного выше фрагмента кода.Кто-нибудь знает, как это сделать или почему это происходит?
РЕДАКТИРОВАТЬ - Вот код, показывающий, как отображается диалоговое окно:
StreamBuilder<String>(
stream: model.taxStream,
builder: (context, snapshot) {
return ListTile(
onTap: () async {
double taxAmount = await showEditAmountDialog(
context, "Tax", model.taxValue());
if (taxAmount != null) {
model.setTax(taxAmount);
}
},
title: Text("Tax"),
trailing: Text(snapshot.hasData ? snapshot.data : ""),
);
},
);