小编AQR*_*QRC的帖子

Flutter:如何使小部件与Google Map保持不变?

我正在使用Google Maps for Flutter小部件。在我的应用程序中,地图是通过BottomNavigationBar的选项卡之一显示的。

而且我有以下问题:

  1. 用户在地图的标签上
  2. 用户更改选项卡(通过点击另一选项卡)
  3. [问题]当用户返回地图的选项卡时,地图将重绘。

我想保持地图在用户离开“地图”选项卡时的状态,以便他以后再返回时可以继续使用它。

试着:

  • 使用PageStorage-没有成功。
  • 制作类似Map的状态的Singletone-失败。
  • 使用AutomaticKeepAliveClientMixin(在此处看到),它看起来很有希望,但仍然没有成功。

(我承认我做错了什么)

上次尝试的代码:

class MapScreen extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => MapScreenState();
}

class MapScreenState extends State<MapScreen> with AutomaticKeepAliveClientMixin {
  GoogleMapController mapController;

  @override
  bool get wantKeepAlive => true;

  @override
  Widget build(BuildContext context) {
    super.build(context);
    return Scaffold(
        appBar: AppBar(
          title: const Text("Map"),
        ),
        body: GoogleMap(
          onMapCreated: _onMapCreated,
        )
    );
  }

  void _onMapCreated(GoogleMapController controller) {
      mapController = controller;
      updateKeepAlive();
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,我只需要一种方法来保持MapScreen处于活动状态且保持不变,或者以某种方式存储其状态并在用户返回MapScreen时将其还原。或者其他可以解决问题的方法。

google-maps dart flutter

10
推荐指数
2
解决办法
682
查看次数

标签 统计

dart ×1

flutter ×1

google-maps ×1