0

我的问题是,当我启动应用程序时,我的地图以一种方式出现,然后在从底部导航栏选项卡传递时,当我返回时,它会完全重新绘制。

我认为这是块和状态图的问题。

我需要知道解决方案是什么,这样它就不会被重绘,也就是说,如果我将地图留在一个位置并踏入选项卡,当我回来时,它会看起来我离开它的地方。

我的地图集团:

     class MapaBloc extends Bloc<MapaEvent, MapaState> {
  MapaBloc() : super(new MapaState());

  GoogleMapController _mapController;

  void initMapa(GoogleMapController controller) {
    {
      this._mapController = controller;
      this._mapController.setMapStyle(jsonEncode(testMapTheme));

      add(OnMapaListo());
    }
  }

  void moverCamara(LatLng destino) {
    final cameraUpdate = CameraUpdate.newLatLng(destino);
    this._mapController?.animateCamera(cameraUpdate);
  }

  @override
  Stream<MapaState> mapEventToState(MapaEvent event) async* {
    if (event is OnMapaListo) {
      yield state.copyWith(mapaListo: true);
    }
  }
}

我的地图事件:

@immutable
abstract class MapaEvent {}

class OnMapaListo extends MapaEvent {}

我的地图状态

@immutable
class MapaState {
  final bool mapaListo;

  MapaState({this.mapaListo = false});

  MapaState copyWith({bool mapaListo}) =>
      MapaState(mapaListo: mapaListo ?? this.mapaListo);
}
4

1 回答 1

0

除非有其他东西触发了您未显示的页面上的重建,否则应该像将AutomaticKeepAliveClientMixin您在主页上使用的内容添加到所有其他屏幕一样简单。

于 2021-03-24T01:38:41.970 回答