'Google Map freezing in flutter

when I integrate google map in flutter, the first once I launch the screen that contains google map widget it freezes my app. note I'm using tab view widget and google map is the third tab in my app.

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'dart:async';

class MapModlue extends StatefulWidget {
  @override
  State createState() => MapModlueState();
}

class MapModlueState extends State<MapModlue> {
  GoogleMapController mapController;
  double opacity = 0.0;

  @override
  Widget build(BuildContext context) {
    return Container(
        padding: new EdgeInsets.all(0.0),
        decoration:
            new BoxDecoration(color: Color.fromRGBO(240, 240, 240, 1.0)),
        child: Opacity(
            opacity: opacity,
            child: GoogleMap(
              onMapCreated: _onMapCreated,
            )));
  }

  // ignore: invalid_override

  void _onMapCreated(GoogleMapController controller) {
    Timer _timer = new Timer(const Duration(milliseconds: 400), () {
      // this timer to hide black screen that appear before map loading
      setState(() {
        mapController = controller;
        opacity = 1.0;
      });`enter code here`
    });
  }
}


Solution 1:[1]

The code you've shared seems to loop on configuring GoogleMapController inside setState(). This causes the map to be rebuilt multiple times. You don't need to call setState() to configure GoogleMapController. It's also demonstrated on google_maps_flutter plugin's sample.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Omatt