Сохранить состояние Google Maps в Flutter - PullRequest
0 голосов
/ 29 октября 2018

Итак, у меня есть приложение с тремя вкладками. На одном из них у меня есть Google Map с соответствующими маркерами и слушатель с запросом Firestore на основе местоположения. Когда вкладка выбрана, соседние элементы будут опрошены и представлены на карте.

Однако, когда я изменю вкладку и снова вернусь к карте, карта, слушатель и все маркеры будут снова настроены (так как были вызваны initState() и dispose()).

Каков наилучший способ сохранить все состояния с карты и перейти к предыдущему состоянию карты при выборе страницы?

Я прочитал кое-что о Redux и BloC, этот шаблон мне понадобится здесь? Если да, как это можно применить к GoogleMap?

1 Ответ

0 голосов
/ 22 февраля 2019

У меня была та же проблема, Flutter в основном перезагружает вашу страницу googlemaps каждый раз, когда вы меняете страницу. Я решил это с помощью IndexedStack. Таким образом, у меня все мои страницы в стеке все время, и они не будут перезагружаться. Я не уверен, что это лучший способ, но он работает.

 child: new IndexedStack(
    children: _pages,
    index: widget.currentItem,
  ),

IndexedStack показывает только элемент индекса в стеке, но все элементы находятся в стеке, даже если они не отображаются, поэтому они не будут перезагружены при смене вкладки. Измените currentItem в зависимости от индекса индекса TabBar с помощью setState ...

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