Flutter - refre sh отдельный элемент в ListView на кране ListTile - PullRequest
1 голос
/ 07 марта 2020

Вот поток, которого я хочу достичь:

  • получить список элементов и поместить его в ListView в виде ListTile
  • при нажатии элемента обновить состояние элемента в Firebase (от непрочитанного до прочитанного )
  • refre sh один элемент в списке
  • перейти к другому
  • при нажатии кнопки «Назад» получить список с обновленным элементом - помеченный как прочитанный

Есть ли возможность обновить sh один элемент в ListView при нажатии? К настоящему времени я пытался использовать метод setState (), но он не работал - элемент обновляется в Firebase, но изменения не появляются в списке, пока я не обновлю sh страницу вручную.

Функция onTap

onTap: () {
  setState(() {
    _notifications[index].data['viewed'] = true;
  });

  _userService.setNotificationAsClicked(_notifications[index].data['id']);
  Navigator.of(context).pushNamed(_notifications[index].data['routing']);
},

BackButton:

return Container(
  child: BackButton(
    onPressed: () {
      Navigator.pop(context);
    },
  ),
);

EDIT: работает, когда в кнопке «Назад» я использую Navigator.of (context) .pushNamed (...) вместо Navigator.pop (), но в В этом случае мне нужно прокрутить вниз и перезагрузить все элементы ...

Я НАШЕЛ РЕШЕНИЕ !!!

Все, что мне нужно сделать было изменено хранение списка с DocumentSnapshot на список с данными из DocumentSnapshot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...