谷歌地图在安卓设备上显示为灰色

Posted

技术标签:

【中文标题】谷歌地图在安卓设备上显示为灰色【英文标题】:Google Maps show gray on android device 【发布时间】:2021-05-12 21:25:28 【问题描述】:

当我打开该片段时,我在我的应用程序中实现了谷歌地图(在片段中),当我获得正确的纬度、经度时它只显示灰屏

代码

override fun onCreateView(
  inflater: LayoutInflater, container: ViewGroup?,
  savedInstanceState: Bundle?
): View? 
  // Inflate the layout for this fragment
  val root = inflater.inflate(R.layout.fragment_map_to_customer, container, false)
  customerAddressArgument = requireArguments().getString("customerAddressArgument").toString()
  // Google Maps
  var mapView = root.findViewById(R.id.map) as MapView
  mapView.getMapAsync(this)
  mapView.onCreate(arguments)
  return root


override fun onMapReady(googleMap: GoogleMap) 
  mMap = googleMap
  // mMap.uiSettings.isZoomControlsEnabled = true

  val geoCoder = Geocoder(context)
  var address = geoCoder.getFromLocationName(customerAddressArgument, 1)!![0]
  val latLng = LatLng(address.latitude, address.longitude)
  mMap!!.addMarker(MarkerOptions().position(latLng).title("Location"))
  mMap!!.animateCamera(CameraUpdateFactory.newLatLng(latLng))
  Log.d("latLng20:", latLng.toString()) <-- return: **D/latLng20:: lat/lng: (-6.3946055,106.7947916)**
  Toast.makeText(
    context,
    address.latitude.toString() + " " + address.longitude,
    Toast.LENGTH_LONG
  ).show()

latLng 在谷歌maps website

有什么想法吗?

【问题讨论】:

mapView.onCreate(arguments) 是什么,我在文档中没有找到它? @PavelPoley 没有该地图将不会被加载 你的地图sdk启用了吗? @UsamaAltaf 是的,我想是的,但要确定我应该在哪里检查它? console.developers.google.com 这里 【参考方案1】:

问题

在调试过程中,我发现我的地图需要在屏幕上点击才能加载它的每个单独部分,并且它不会自行加载元素。

解决方案

为了解决我发现的问题并回答here,建议使用onResume() 函数来加载地图,这是它的完成方式。

var mapView: MapView? = null //<-- add this

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? 
        // Inflate the layout for this fragment
        val root = inflater.inflate(R.layout.fragment_map_to_customer, container, false)
        customerAddressArgument = requireArguments().getString("customerAddressArgument").toString()

        // Google Maps
        mapView = root.findViewById(R.id.map) as MapView //<- define it here
        mapView!!.getMapAsync(this)
        mapView!!.onCreate(arguments)
        return root


override fun onResume() 
  mapView?.onResume() //<- get it in onResume()
  super.onResume()

问题解决了。

【讨论】:

以上是关于谷歌地图在安卓设备上显示为灰色的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图在Android的标签片段上显示为灰色

仅在设备屏幕的特定部分显示谷歌地图折线

谷歌地图显示为灰色框

Android应用谷歌地图显示灰色瓷砖而不是地图!

谷歌地图上出现灰色网格

使用相同的安卓应用在谷歌地图中查找附近设备的位置