Пакет анимации порхания - PullRequest
3 голосов
/ 25 февраля 2020

Прежде всего, я использую анимационный пакет от 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, но, к сожалению, безуспешно ...

1 Ответ

1 голос
/ 25 апреля 2020

Благодаря этому выпуск GitHub два дня go пользователь 'The-Redhat' pu sh в основной ветке пакета анимации внесены изменения, которые включают OpenContainer onClose событие

Чтобы использовать его перед выпуском официальной версии пакета, просто замените пакет animations в вашем пабсе c .yaml на

animations:
    git:
      url: git://github.com/flutter/packages.git
      path: packages/animations

На этом этапе вы можете просто передать свою пользовательскую функцию виджету OpenContainer это будет выполняться каждый раз, когда он будет закрыт. В вашем случае вы можете обновлять данные, когда пользователь возвращается в «родительский виджет».

...