You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Map视图原生控件被statusbar、toolbar遮挡的解决方法咨询

解决Google Map控件被状态栏/工具栏遮挡的问题

Android 端解决方案

  • 通过GoogleMap的setPadding()方法,给地图设置顶部内边距,避开状态栏和工具栏的高度:
    1. 先获取状态栏和工具栏的总高度:
      // 获取状态栏高度
      val statusBarHeight = resources.getDimensionPixelSize(
          resources.getIdentifier("status_bar_height", "dimen", "android")
      )
      // 获取工具栏高度
      val toolbarHeight = toolbar.height
      val topPadding = statusBarHeight + toolbarHeight
      
    2. 给地图设置内边距:
      googleMap?.setPadding(0, topPadding, 0, 0)
      
    设置完成后,地图原生控件(如旋转重置按钮)会自动向下偏移至无遮挡区域,同时地图显示内容会适配内边距,不会出现裁剪问题。

iOS 端解决方案

  • 利用GMSMapView的padding属性,设置顶部偏移量:
    1. 计算状态栏+导航栏的总高度:
      let statusBarHeight = UIApplication.shared.statusBarFrame.height
      let navBarHeight = navigationController?.navigationBar.frame.height ?? 0
      let topPadding = statusBarHeight + navBarHeight
      
    2. 给地图设置内边距:
      mapView.padding = UIEdgeInsets(top: topPadding, left: 0, bottom: 0, right: 0)
      
    此操作会让地图所有原生控件整体下移至可见区域,同时保持地图内容正常显示。

内容的提问来源于stack exchange,提问作者user924

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:16:02