如何保持我的bottomNavigationBar Cubit BLoc Flutter的状态?
Posted
技术标签:
【中文标题】如何保持我的bottomNavigationBar Cubit BLoc Flutter的状态?【英文标题】:How to keep the state of my 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);
【问题讨论】:
【参考方案1】:除非有其他东西触发了您未显示的页面上的重建,否则应该像将您在主页上使用的 AutomaticKeepAliveClientMixin
添加到所有其他屏幕一样简单。
【讨论】:
我试过了,但它一直在完全重绘。我认为这一定是集团和国家的问题。我添加了该代码以防您想到问题所在。 我明天会看看这个,但是当你不希望它们重建时,你还应该显示你为正在重建的页面所拥有的代码。以上是关于如何保持我的bottomNavigationBar Cubit BLoc Flutter的状态?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:BottomNavigationBar在选项卡更改时重建页面
Flutter底部导航栏BottomNavigationBar页面状态保持解决方案
如何路由到页面,而不在颤动中删除 BottomNavigationBar?
如果我们在 GetX 上使用 bottomNavigationBar,如何使用内部导航