Flutter:在构建Googlemap时显示Circularprogressindicator

时间:2020-09-15 00:43:42

标签: google-maps flutter

我想显示circularprogressindicator(),直到完成Googlemap

我使用了FutureBuilder,但是没有用。

我的代码

Container(
  height:100,
  child: FutureBuilder(
    future: googlemap()
    builder: (context, snapshot){
      if(snapshot.hasdata){
        return snapshot.data;
      }
      else{
        return CircularProgressIndicator();
      }
    }
  )
)

Futurbuilder

Futur<Widget>  googlemap() async{
  Completer<GoogleMapController> _controller = Completer();
  return await Googlemap(
    mapType: MapType.normal,
    initialCameraPosition: CameraPosition(
      target: LatLng(XX.XXXXXX, XXX.XXXXXX),
      zoom: 17.0
    )
    onMapCreated: (GoogleMapController controller){
      _controller.complete(controller);
    },
    myLocationEnabled: false,
    myLocationButtonEnabled: false,
    compassEnabled: false,
    zoomGesturesEnabled: false,
    rotateGesturesEnabled: false,
    scrollGesturesEnabled: false,
    tiltGesturesEnabled: false,
    markers: Set<Marker>.of(_markers)
  )
}

结果

enter image description here

我可以在这里得到一些提示吗?

1 个答案:

答案 0 :(得分:0)

我还没有解决,但是我找到了替代方法。

我的解决方案

  bool splash = false;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    Future.delayed(Duration(seconds: 2), (){
      setState(() {
        splash = true;
      });
    });
  }

小部件

  @override
  Widget build(BuildContext context) {
    return splash ? SafeArea(
      child: ListView(
        children: [
          //googlemap1(),
          //googlemap2(),
          //googlemap3(),
          //googlemap4(),
        ],
      ),
    ) : Container(
      child: Center(
          child: CircularProgressIndicator()
      ),
    );
  }

请让我知道是否有比这更好的方法。