簡體   English   中英

如何保留我的bottomNavigationBar Cubit BLoc Flutter的state?

[英]How to keep the state of my bottomNavigationBar Cubit BLoc Flutter?

我遇到的問題是,當我啟動應用程序時,我的 map 以一種方式出現,然后在從底部導航欄選項卡傳遞時,當我返回時它會完全重繪。

我認為這是塊和 state map 的問題。

我需要知道解決方案是什么,這樣它就不會被重繪,也就是說,如果我將 map 留在 position 中並進入選項卡,當我回來時,它看起來我離開它的地方。

我的 map 集團:

     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);
    }
  }
}

我的 map 事件:

@immutable
abstract class MapaEvent {}

class OnMapaListo extends MapaEvent {}

我的 map state

@immutable
class MapaState {
  final bool mapaListo;

  MapaState({this.mapaListo = false});

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

除非有其他東西觸發了您未顯示的頁面上的重建,否則應該像將您在主頁上使用的AutomaticKeepAliveClientMixin添加到所有其他屏幕一樣簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM