如何在 Flutter 中主题化谷歌地图?



我有一个地图应用程序,我想在日出和日落时更改主题。地图主题应该非常简单,但我收到以下错误。

未处理的异常:NoSuchMethodError:方法"setMapStyle"在 null 上调用。

这是我的pubspec.yaml

assets:
- assets/themes/map/day/
- assets/themes/map/night/

我已经导入了以下软件包。

import 'package:flutter/services.dart' show rootBundle;

我已将以下行添加到我的 initState(( 中

rootBundle.loadString('assets/themes/map/night/night.json').then((string) {
_mapStyle = string;
});

这是我的地图控制器。

Completer<GoogleMapController> _mapController = Completer();
void _onMapCreated(GoogleMapController controller) {
PermissionHandler()
.checkPermissionStatus(PermissionGroup
.locationWhenInUse) //check permission returns a Future
.then(_updateStatus); // handling in callback to prevent blocking UI
_mapController.complete(
controller); // manages camera function (position, animation, zoom).
controller.setMapStyle(_mapStyle);
print("MAPSTYLE -> $_mapStyle");
}

这是我的地图代码的开头

_userLocation == null
? Center(
child: CircularProgressIndicator(
backgroundColor: Theme.UniColour.primary[900],
))
: GoogleMap(
onMapCreated: _onMapCreated,
initialCameraPosition:
CameraPosition(
target: _userLocation,
zoom: _defaultZoom,
tilt: _tiltAngle),
...
...
...

任何帮助将不胜感激。

这段代码对我有用。

controller.setMapStyle(await rootBundle.loadString('assets/styles/google_map.json'));

使用异步等待来防止争用条件。

相关内容

  • 没有找到相关文章

最新更新