【问题标题】:How to keep the state of my bottomNavigationBar Cubit BLoc Flutter?如何保持我的bottomNavigationBar Cubit BLoc Flutter的状态?
【发布时间】:2021-06-20 16:56:17
【问题描述】:

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

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

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

我的地图块:

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

【问题讨论】:

    标签: flutter bloc cubit


    【解决方案1】:

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

    【讨论】:

    • 我试过了,但它一直在完全重绘。我认为这一定是集团和国家的问题。我添加了该代码以防您想到问题所在。
    • 我明天会看看这个,但是当你不希望它们重建时,你还应该显示你为正在重建的页面所拥有的代码。
    猜你喜欢
    • 2021-12-23
    • 2022-01-21
    • 2023-01-05
    • 2019-08-04
    • 2021-02-12
    • 2023-01-17
    • 2021-09-03
    • 2022-10-13
    • 2021-03-19
    相关资源
    最近更新 更多