У меня была та же проблема, Flutter в основном перезагружает вашу страницу googlemaps каждый раз, когда вы меняете страницу. Я решил это с помощью IndexedStack. Таким образом, у меня все мои страницы в стеке все время, и они не будут перезагружаться. Я не уверен, что это лучший способ, но он работает.
child: new IndexedStack(
children: _pages,
index: widget.currentItem,
),
IndexedStack показывает только элемент индекса в стеке, но все элементы находятся в стеке, даже если они не отображаются, поэтому они не будут перезагружены при смене вкладки. Измените currentItem в зависимости от индекса индекса TabBar с помощью setState ...