【问题标题】:How to pass a googleMapController to custom widget? (Flutter)如何将 googleMapController 传递给自定义小部件? (扑)
【发布时间】:2021-11-06 07:29:37
【问题描述】:

在我颤动的 googleMap 上,我有 quickDialButton,它有多个按钮。其中一个应该使父 mapWidget 的相机居中,这是通过我作为参数传递的 googleMapControllet 发生的。

return Scaffold(
      body: GoogleMap(
        initialCameraPosition:
            CameraPosition(target: LatLng(42, 23), zoom: 11.5),
        myLocationButtonEnabled: false,
        zoomControlsEnabled: false,
        mapToolbarEnabled: false,
        onMapCreated: (controller) {
          googleMapController = controller;
        },
        markers: customMarkers.toSet(),
      ),
      floatingActionButton: MyQuickDialButton(
        c: googleMapController,
        latitude: userLocation.latitude,
        longitude: userLocation.longitude,
      ),

问题是 googleMapController 在将 floatingActionButton 属性初始化到脚手架之后。初始化控制器后如何更新它。

【问题讨论】:

    标签: flutter scaffold action-button


    【解决方案1】:

    我没有传递这个控制器,而是创建了可以从父小部件运行控制器方法的新函数。

    
    void _centerCamera() {
          googleMapController.animateCamera(CameraUpdate.newCameraPosition(
              CameraPosition(
                  target: LatLng(userLocation.latitude, userLocation.longitude),
                  zoom: 16)));
        }
    
    ...
    floatingActionButton: MyQuickDialButton(
            c: _centerCamera,
            latitude: userLocation.latitude,
            longitude: userLocation.longitude,
          )
    
    
    

    后来我只从子小部件调用函数“c”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-17
      • 1970-01-01
      • 2014-06-19
      • 2022-11-12
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      相关资源
      最近更新 更多