Прежде всего, я использую анимационный пакет от Flutter , и мой вопрос касается только использования этого пакета:
Перед использованием этого пакета я переместил второе представление в Навигатор с ключевым словом await, поэтому, когда пользователь возвращается из этого второго представления, после этого вызывается код:
await Navigator.push(
context,
MaterialPageRoute(builder: (context) => DetailView()),
);
loadData();
Теперь, после интеграции этой библиотеки анимаций, я сам не вызываю Navigator.push()
, но только определить целевой виджет и навигация осуществляется библиотекой. Принимая во внимание, что до сих пор код для любого элемента списка был просто виджетом ListTile, теперь он выглядит так:
return OpenContainer(
openBuilder: (BuildContext _, VoidCallback closeContainer) {
return DetailView();
},
closedBuilder: (BuildContext _, VoidCallback openContainer) {
return _buildListTile(openContainer);
},
);
В методе _buildListTile ListTile обернут InkWell, который принимает этот VoidCallback openContainer
для Параметр onTap.
Что я не могу выяснить, так это как ждать, пока пользователь не нажмет на второй и, следовательно, вернется к первому виду. Мне нужно (повторно) загрузить данные, как показано в первом фрагменте кода. Кто-нибудь сделал это и может сказать мне? Я пытался поиграться с openBuilder
и closedBuilder
, но, к сожалению, безуспешно ...