【问题标题】:Inflate a custom View inside google map在谷歌地图中充气自定义视图
【发布时间】:2021-09-10 18:33:59
【问题描述】:

如何在谷歌地图片段中填充自定义视图?

要在地图上添加图像/点,我们可以使用 Markers 或 GroundOverlay,但如果我们需要自定义视图(例如,列表或带有按钮的图像),两个类都会在其属性 .icon 和 @ 上接收 BitmapDescriptor分别为 987654323@,它将给定的布局转换为普通图像,失去了它的多功能性,例如无法在按钮上添加 onClickListeners。

那么有没有办法在谷歌地图片段中添加自定义视图而不将其转换为图像?

【问题讨论】:

  • 你想通过添加这个自定义视图来完成什么?
  • @VivekMishra 现在,添加带有文本和交互的布局,最初是 onClicks
  • 那么,除了将其添加到谷歌地图之外,您不能使用框架布局在地图上叠加视图吗?
  • 好吧,让我们补充一下,我想直接将此视图添加到一个位置 - 如果我将它附加到地图上,它将被修复,我将不得不禁用地图交互(例如拖动等)

标签: android google-maps google-maps-markers gmsgroundoverlay


【解决方案1】:

文档明确指出,视图将被渲染为图像,从而取消先前对视图的任何更改。因此,无法在谷歌地图中创建具有不同行为的自定义视图。

注意:绘制的信息窗口不是实时视图。观点是 渲染为图像(使用 View.draw(Canvas)) 回来。这意味着对视图的任何后续更改都不会 由地图上的信息窗口反映。更新信息窗口 稍后(例如,加载图像后),调用 showInfoWindow()。 此外,信息窗口不会尊重任何交互性 典型的普通视图,例如触摸或手势事件。然而你 可以在整个信息窗口上监听一个通用的点击事件 在下面的部分中描述。

来自文档:link

【讨论】:

    猜你喜欢
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2014-02-01
    • 1970-01-01
    • 2014-07-29
    • 2020-04-17
    相关资源
    最近更新 更多